Select Leader do Leader na tabela
Boa noite.
Estou quebrando a cabeça para fazer um select que aparentemente é simples, mas, não consigo fazer funcionar...
Preciso preencher os "níveis" (Level1,Level2,Level3,Level4, etc...), selecionando o Leader do Leader.
Exemplo:
Eu , indiquei o João(ID 1),Que por sua vez, indicou a Maria(ID 2), que indicou o Lucas(ID 3).
Eu Sou o Leader do João(ID 1), e ele tem que entrar na minha coluna "Level1".
O João (ID 1) é Leader da Maria (ID 2 ), e ela tem que entrar na minha coluna "Level2", pois está abaixo do João.
A Maria (ID 2) é Leader do Lucas (ID 3 ), e ele tem que entrar na minha coluna "Level3", pois está abaixo da Maria.
Todos eles estão diretamente( no caso o joão) e indiretamente (no caso a Maria e o Lucas) na minha rede, mas cada um tem um Leader (upline), ou seja, um ID de indicação diferente, e não sei como fazer cada um deles entrar na coluna certa....
Tenho um banco de dados chamado nomedaempresa_mmn e neste tem a tabela members . As colunas desta tabela são essas:
CREATE TABLE dummy (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`Address` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`City` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`State` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`Zip` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`Country` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`Phone` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`Email` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`Password` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`PaymentDetails` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`ref_by` INT(10) UNSIGNED NOT NULL,
`Level1` INT(10) UNSIGNED NOT NULL,
`Level2` INT(10) UNSIGNED NOT NULL,
`Level3` INT(10) UNSIGNED NOT NULL,
`Level4` INT(10) UNSIGNED NOT NULL,
`Level5` INT(10) UNSIGNED NOT NULL,
`Level6` INT(10) UNSIGNED NOT NULL,
`Level7` INT(10) UNSIGNED NOT NULL,
`Level8` INT(10) UNSIGNED NOT NULL,
`Level9` INT(10) UNSIGNED NOT NULL,
`Level10` INT(10) UNSIGNED NOT NULL,
`Leader` INT(10) UNSIGNED NOT NULL,
`Total` FLOAT(8,2) NULL DEFAULT '0.00',
`Unpaid` FLOAT(8,2) NULL DEFAULT '0.00',
`Paid` FLOAT(8,2) NULL DEFAULT '0.00',
`IP` VARCHAR(75) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`Date` DATETIME NULL DEFAULT NULL,
`DatePagamentoBonus` DATE NULL DEFAULT NULL,
`pacote` VARCHAR(100) NOT NULL DEFAULT 'lider' COLLATE 'utf8_unicode_ci',
`cpf` VARCHAR(32) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`banco` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`agencia` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`conta` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`titular` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`neteller` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`contasuper` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`paypal` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`token` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`status` INT(11) NOT NULL COMMENT '1 para ativado, 0 para inativo para recebimento de bonus (login independe disso!)',
`banco_cpf` VARCHAR(30) NOT NULL COLLATE 'utf8_unicode_ci',
`tipo_conta` ENUM('cc','poupanca') NOT NULL DEFAULT 'cc' COLLATE 'utf8_unicode_ci',
`bairro` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`n_reativacoes` INT(11) NOT NULL DEFAULT '0',
`pontos` INT(20) NULL DEFAULT '0',
`totalultimascompras` FLOAT NOT NULL DEFAULT '0' COMMENT 'soma do montante de todas compras na loja virtual desde do ultimo saque efetuado, isso eh usado para manter o saldo disponivel coerente',
`fb_uid` VARCHAR(50) NOT NULL COLLATE 'utf8_unicode_ci',
`saldo_binario_sacado_e` INT(20) NOT NULL DEFAULT '0' COMMENT 'perna esquerda',
`saldo_binario_sacado_d` INT(20) NOT NULL COMMENT 'perna direita',
`produtos_indicados` INT(20) NOT NULL DEFAULT '0' COMMENT 'armazena a quantidade de produtos comprados na loja quando o comprador acessa via url pessoal do membro indicador',
`graduacao` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`saldo` FLOAT NOT NULL DEFAULT '0',
`saldo_indiretos_sacado` FLOAT(20,2) NOT NULL DEFAULT '0.00',
`proxima_perna` ENUM('e','d','a') NOT NULL DEFAULT 'a' COLLATE 'utf8_unicode_ci',
`perna` ENUM('e','d') NOT NULL DEFAULT 'e' COLLATE 'utf8_unicode_ci',
`pagamento_unilevel` DATE NOT NULL,
`DatePagamentoBonusUnilevel` DATE NOT NULL,
`ponto` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`rg` VARCHAR(40) NOT NULL COLLATE 'utf8_unicode_ci',
`cestas` INT(10) NOT NULL DEFAULT '0',
`feito_unilevel` DATE NOT NULL,
`IsStandby` ENUM('S','N') NOT NULL DEFAULT 'N' COLLATE 'utf8_unicode_ci',
`pagou_adesao` DATE NULL DEFAULT NULL,
`cupom` FLOAT NULL DEFAULT NULL,
`codigocupom` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci'
)
E o **SELECT** e **UPDATE **que estou tentando fazer é esse: (me corrijam por favor)
$rs = mysql_query("SELECT *, DATE_FORMAT(DatePagamentoBonusUnilevel, '%d/%m/%Y') as DatePagamentoBonusUnilevelFormat FROM members WHERE Leader = '".(isset($_GET['father']) ? $_GET['father'] : $id)."' ORDER BY ID ASC") or die(mysql_error());
$mn = mysql_num_rows($rs);
if($mn > 0 || isset($_GET['father'])){
$x = -1;
for($i=0;$i<$mn;$i++){
if($i < $lat){
$M[$i] = mysql_fetch_array($rs);
}else {
$M_DERR[($i-$lat)] = mysql_fetch_array($rs);
}
}
if(count($M_DERR) == 0){
$DERR = unserialize(urldecode($_GET['DERR'])); // REVIEW THIS LINE!! MAY BE WRONG OR NOT
}else {
$DERR = serialize($M_DERR);
}
$CM = count($M);
$name = mysql_result(mysql_query("Select * From members WHERE ID = '".mysql_real_escape_string(isset($_GET['father']) ? $_GET['father'] : $id)."' LIMIT 1"),0,"Name");
echo '<style> body{ font-size:13px; font-family:Arial; font-weight:400; }</style>';
echo '<table border="0" celspacing="8" cellpadding="8" width="800">';
echo '<tr>';
echo '<td colspan="4"><center><img src="images/907397949.png" width="130"/><br/><b>("'.$name.'")</b></center><br/><br/></td>';
echo '</tr>';
echo '<tr>';
for($i=0; $i<$CM; $i++){
echo '<td width="200" valign="top" align="left">';
$DadMember = $M[$i];
$name = explode(" ",$M[$i][Name]);
$name = ucfirst($name[0]);
$MemCestBasc = IsMemberCestaBasica($M[$i]["ID"]);
mysql_query("SELECT Leader FROM members WHERE Leader = '".$father."' ORDER BY ID ASC");
$dir = mysql_num_rows(mysql_query("SELECT * FROM members WHERE Leader = '".$id."'"));
$indir = mysql_num_rows(mysql_query("SELECT * FROM members WHERE Leader = '".$Leader."'"));
mysql_query("Update members set Level1=Level1+1 where ID=".$Leader."'");
mysql_query("Update members set Level2=Level2+1 where ID=".$Leader."'");
mysql_query("Update members set Level3=Level3+1 where ID=".$Leader."'");
mysql_query("Update members set Level4=Level4+1 where ID=".$Leader."'");
mysql_query("Update members set Level5=Level5+1 where ID=".$Leader."'");
mysql_query("Update members set Level6=Level6+1 where ID=".$Leader."'");
mysql_query("Update members set Level7=Level7+1 where ID=".$Leader."'");
mysql_query("Update members set Level8=Level8+1 where ID=".$Leader."'");
mysql_query("Update members set Level9=Level9+1 where ID=".$Leader."'");
mysql_query("Update members set Level10=Level10+1 where ID=".$Leader."'");
Me perdoem a bagunça. Mas é que tentei tantas coisas que já fiquei perdida...
Se puderem me dar uma luz aqui, agradeço de coração.
Discussão (0)
Carregando comentários...