Това е отговорът, след като опитах много начини. Решаване на предишния ми проблем. Просто използвам таблица с един член по-горе.
За показване на броя на долните линии, отляво и отдясно. Вмъквам този скрипт в страницата на дървото с членове на HTML за всеки потребител в дървото A, надолу до B/C, надолу до D/E/F/G ):
<?php echo $users->downline_number($member,'_left'); ?>
<?php echo $users->downline_number($member,'_right'); ?>
Добавете тази функция в потребителския клас;
function downline_number($member,$position) {
$query = $this->db->prepare("SELECT * FROM `member` WHERE `upline`='$member' AND `position`='$position'");
$query->bindValue(1, $member);
$query->bindValue(2, $position);
try{
$query->execute();
$rows = $query->fetch();
if($this->count_downline($member,$position) >0 ){
$total=$this->total_members_down($rows['username']);
}else{
$total=0;
}
return $total;
}catch(PDOException $e){
die($e->getMessage());
}
}
function count_downline($member,$position) {
$query = $this->db->prepare("SELECT * FROM `member` WHERE `upline`=? AND `position`=? ");
$query->bindValue(1, $member);
$query->bindValue(2, $position);
try{
$query->execute();
return $rows = $query->rowCount();
}catch(PDOException $e){
die($e->getMessage());
}
}
function total_members_down($upline,$reset=0) {
global $num;
if ($reset==0) { $num=1; }
$query = $this->db->prepare("SELECT * FROM `member` where `upline`='$upline' order by id asc");
$query->bindValue(1, $upline);
try{
$query->execute();
if ($upline !='') {
if ($this->total_down($upline) > 0 ) {
while ($rows = $query->fetch() ) {
$num++;
$this->total_members_down($rows['username'],$num);
}
return $num;
} else {
return $num;
}
} else { $num=0; return $num; }
}catch(PDOException $e){
die($e->getMessage());
}
}
function total_down($upline) {
$query = $this->db->prepare("SELECT * FROM `member` where `upline`='$upline' order by id asc ");
$query->bindValue(1, $upline);
try{
$query->execute();
return $rows = $query->rowCount();
}catch(PDOException $e){
die($e->getMessage());
}
}
и работи, показвайки двоична структура на члена. Показването на идентификатора на члена не е прикачено тук, което е по прост начин. Просто левия и десния долни номера.
Надяваме се, че тази публикация ще помогне на други, които се нуждаят от нея. Някакво предложение за по-добри начини?