|
|
|
| Я рекурсивно считываю уровни рефералов. Все бы ничего, но выводятся они в ужасном порядке... например:
1 - ref1
2 - ref2
1 - ref3
Первые цифры - это уровни.
Как это исправить?
function ref_sys($id,$level,$levels){
?><tr><td><?
$DBResult = mysql_query("SELECT id,login FROM tbl WHERE pid='$id'");
while($DBRow = mysql_fetch_array($DBResult)){if($DBRow[0]==""){break;}
?><tr><td><font class="text"><?print $level." - ".$DBRow['login'];?></font></td></tr><?
if($level+1<=$levels){ref_sys($DBRow['id'],$level+1,$levels);}
}
}
|
Глобальные переменные использовать не надо. | |
|
|
|
|
|
|
|
для: Shorr Kan
(03.05.2005 в 05:45)
| | Если я не запутался, то все выводится правильно: ref1 и ref3 - рефералы одного уровня.
Вроде как строку $level+1 надо вынести из цикла while, иначе нумерация будет неверной. | |
|
|
|
|
|
|
|
для: Shorr Kan
(03.05.2005 в 05:45)
| | Хм... вообще в этом случае созадют именно глобальный массив, куда и помещают данные, а потом его сортируют и выводят... | |
|
|
|
|
|
|
|
для: cheops
(03.05.2005 в 18:57)
| | Строчку выводить из цикла нельзя, иначе рефералы второго и последующих уровней видны не будут.
С глобальным массивом понял... | |
|
|
|