Jump to content
Fórum Script Brasil
  • 0

De Onde Veio Pra Onde Vai?


Guest --Antonio --

Question

Guest --Antonio --

Ola, então pesso eu tenho a seguinte duvida como saber quem inidico quem em niveis tipo.

cod_user nome_user ind_user cidade_user

2 William 0 Penha

3 Luciane 2 Penha

4 Wagner 2 Penha

5 Maria da 2 Penha

6 Kristiano 3 Penha

7 Beto 6 Penha

Nesse exemplo o usuario de codigo 2 indicou .

3 Luciane 2 Penha

4 Wagner 2 Penha

5 Maria da 2 Penha

Assim o usuario de codigo 3 indicou.

6 Kristiano 3 Penha

E também assim o usuario de codigo 6 indicou.

7 Beto 6 Penha

......

Qual é a pergunta?

Simpes como eu vou ligar todos eles exemplo vou clicar no usuario de codigo 2

E dai o sistema vai falar OH o usuario 2 indico diretamente esses.

3 Luciane 2 Penha

4 Wagner 2 Penha

5 Maria da 2 Penha

Segundo nivel.

6 Kristiano 3 Penha

Terceiro nivel.

6 Kristiano 3 Penha

Bem assim pro primeiro nivel é facil.

<?php

$host     = "localhost";
$user     = "root";
$senha     = "";
$bd     = "banco";
mysql_connect($host,$user,$senha);
mysql_select_db($bd);

$sql = mysql_query("Select cod_user, nome_user, ind_user, cidade_user from teste");
 while($a = mysql_fetch_array($sql)) {
            echo "<tr><td bgcolor=\"#CCCCCC\" background=\"img/masnoticia.jpg\" height=\"20\" style=\"color:#FFFFFF;\" align=\"left\"> ".$a[nome_user]."</td><td> - Indiciados <a href=".$PHP_SELF."?indicados=".$a[ind_user]." target=\"_blank\">(Clique)</a><br /></td></tr><br />";
      }
if(isset($_GET['indicados'])){
$indicados = $_GET['indicados'];
$sql = mysql_query("Select cod_user, nome_user, ind_user, cidade_user from teste where ind_user=$indicados");
 while($a = mysql_fetch_array($sql)) {
            echo "<tr><td bgcolor=\"#CCCCCC\" background=\"img/masnoticia.jpg\" height=\"20\" style=\"color:#FFFFFF;\" align=\"left\"> ".$a[nome_user]."</td><td> - Indiciados <a href=".$PHP_SELF."?indicados=".$a[ind_user]." target=\"_blank\">(Clique)</a><br /></td></tr>";
      }
      }

?>

Mas e para ligar o resto :(

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

A lógica desses sistema de pirâmide é bem complexa, a modelagem do banco de dados não é feita dessa maneira (eu pelo menos não faria...se houver um número máximo de níveis, eu guardaria os indicados diretamente/indiretamente, na própria coluna que guarda quem foi que fez indicação...

Link to comment
Share on other sites

  • 0
Guest --Antonio --

Tah digamos então que eu tenha na modelagem da tablea a coluna

indicacoes :

Dentro deça coluna eu colocaria todos os indicados diretamente e inderetamente dividos por uma ,

mas digamos assim

Nome: Antonio

Idade: 18

Codigo: 007

Indicações: 008, 009, 010, 011 ( Porem o 10 e o 11 são do usuario 009 e assim são inderetamente meus porem como eu demostraria isso? ) teria que ter uma indicação para user diretos e user indiretos?

Ativo: 1

Link to comment
Share on other sites

  • 0

Se eu estivesse fazendo, no momento que a pessoa se cadastra no sistema eu criaria as ligações... se tiver 5 níveis, criaria 5 colunas, nivel1,nivel2...nivel5, e guardaria ai os IDs dos indicados... acho que é o modo mais simples...

Link to comment
Share on other sites

  • 0

olha so, eu faria assim..

montaria um campo no banco de dados com o nome de referencia.

até ai tudo bem, agora você pode gravar pelo id do referente.

exemplo

ID NOME REFENCIA

1 Carlos 0

2 Joaquim 1

olha a referncia do joaquim esta 1.

logo quem indico ele foi o Carlos x)

assim, teria como você fazer uma arvore gigantesca, tipo..

ID NOME REFENCIA

1 Carlos 0

2 Joaquim 1

3 Maria 2

4 Silva 3

logo quem indico a Sivia foi a Maria.

mais quem indico a Maria?

o Joaquim.

mais quem indico o Joaquim?

foi o Carlos...

mais qeum indico o Carlos?

ninguém.

logo quando o cara tiver referencia = 0 ou = a vazio ngm indico ele.

ta mais como fazer isto?

vamos a pratica então.

faça um combobox com os nomes que estão no banco de dados..

<?
include("conectar_com_o_banco.php");
$sql = "SELECT * FROM tabela";
$exe = mysql_query($sql);
echo "Se alguém tiver lhe indicado, escolha o nome no campo referencia, ou deixe em branco!<br>";
echo "<form action=\"grava.php\" name=\"referencia\" method=\"POST\">";
echo "NOME : <input type=\"text\" name=\"nome\"><br>";
echo "<select name=\"referencia\">";
while($linha=mysql_fetch_object($exe)){
echo "<option value=\"\">Referencia</option>";
 echo "<option value=\"".$linha->id."\">".$linha->nome."</option>";
}
echo "</option>";

?>
o seu campo de refencia esta montado. como gravar no banco de dados? facil de mais uai... bora la,
<?
include("conectar_com_o_banco.php");
if($_POST['referencia'] == ""){
  $_POST['referencia'] = "0";
}

$sql = "INSERT INTO tabela(nome,referencia) VALUES('".$_POST['nome']."','".$_POST['referencia']."')";
$exe = mysql_query($sql);

echo "Cadastrado com sucesso!";

?>

olha, isto é uma coisa, bem simples é so pra você intender a logica, e se tiver algo errado me descupa e que eu estou com preguiça de abrir o zend aqui. xD

enfim,

boa sorte.

Edited by ESerra
Utilize as tags [code] [/code]
Link to comment
Share on other sites

  • 0
Guest --Antonio --

Seu codigo esta bem porem para uma unica indicação e se fosse com niveis tipo

001 Carlos 1

002 Maria ( Amiga de Carlos ) 001

003 Joao ( Amigo de Maria ) 002

004 Pedro ( Amigo de Joao ) 003

Porem todos eles são indicados diretamente e indiretamente por Carlos.

Já que até o nivel 7 seriam da rede dele você entendeu?

Essa parte de niveis que esta complicando a cabeça

Link to comment
Share on other sites

  • 0

isto é muito complexo mesmo, eu tomei uma surra um dia deste pra fazer uma arvore destas, mais olha so, você pode fazer algo assim..

Maria teria referencia de Carlos.

logo na hora de mostrar você faria dois while(){}

um pra colocar o option = $linha-> id //que seria o que não foram indicados

e um pra colocar o option = $linha->referencia //os que foram indicados.

logo você colocando o id refencia pra maria, ficaria assim..

001 Carlos 1 <- aqui eu acho que deveria ser 0, fica mais facil de intender...

002 Maria ( Amiga de Carlos ) 001

003 Joao ( Amigo de Maria ) 001

004 Pedro ( Amigo de Joao ) 001

todos com referencia em Carlos, mais se tiver que fazer um controle pra pagar cache, não seria cache mais me fugiu as palavras agora.

pagar uma comissão. isto.

pagaria tudo pro Carlos e não pra Maria, ou Pro Joao.

enfim, eu acho que eu fico bem explicando na parte de cima. x)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...