कई तरीकों से कोशिश करने के बाद यह जवाब है। मेरी पिछली समस्या का समाधान। ऊपर केवल एक सदस्य तालिका का उपयोग कर रहे हैं।
डाउनलाइन की संख्या दिखाने के लिए, बाएँ और दाएँ। मैं इस स्क्रिप्ट को एचटीएमएल सदस्य पेड़ पेज में पेड़ ए में प्रत्येक उपयोगकर्ता के लिए, नीचे बी/सी, डी/ई/एफ/जी तक नीचे डालता हूं):
<?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());
}
}
और यह बाइनरी सदस्य वृक्ष संरचना दिखाने का काम करता है। सदस्य आईडी दिखाना यहां संलग्न नहीं है, यह आसान तरीका है। बस बाएँ और दाएँ डाउनलाइन नंबर।
आशा है कि यह पोस्ट दूसरों की मदद करेगी जिन्हें इसकी आवश्यकता है। बेहतर तरीकों के लिए कोई सुझाव?