Ребят, в общем столкнулся с такой проблемой.
Пишу рекурсию. Суть такова:
Есть реферальная программа. И функция определяет вышестоящего реферера. Она должна его определить так, чтобы под каждым пользователем было не больше двух(к примеру) рефералов.
То есть если под пользователем есть два реферала, то он начинает чекать этих двух. Если под этими двумя тоже заполнено, то функция чекает следующую линию уже из четырех.
У меня на данный момент такая ситуация. Но она работает неверно. На рисунке указал что именно.
То есть функция начинает свой обход "вглубь" до самого нижнего реферала, а мне нужно чтобы она чекала линии поочередно.
Вот как выводится эта строка:
echo $referal_num."---".$change_curator['id']." ".$change_curator['parent']."<br>";
Он переходит в пользователю с id 2042 на пятой итерации, а нужно чтобы вызывал 2049.
Как тут правильнее сделать. Заранее премного благодарен.
////////////////////////************//////////////////////////////
function overflow_in($parent_link) {
global $CONNECT;
$curator = mysqli_query($CONNECT, "SELECT * FROM `users` WHERE `parent` = '$parent_link[id]'");
while ($change_curator = mysqli_fetch_assoc($curator) ) {
$referal_num = mysqli_num_rows(mysqli_query($CONNECT, "SELECT * FROM `users` WHERE `parent` = '$change_curator[id]'"));
echo $referal_num."---".$change_curator['id']." ".$change_curator['parent']."<br>";
if ( $referal_num < 2 ) {
return $change_curator['id'];
}
}
$curator_next[$i] = mysqli_query($CONNECT, "SELECT * FROM `users` WHERE `parent` = '$parent_link[id]'");
$change_curator_next = mysqli_fetch_assoc($curator_next[$i]);
return overflow_in($change_curator_next);
}
function overflow($parent_cook) {
global $CONNECT;
$parent_link = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT * FROM `users` WHERE `id` = $parent_cook"));
$referal_num = mysqli_num_rows(mysqli_query($CONNECT, "SELECT * FROM `users` WHERE `parent` = '$parent_link[id]'"));
if ( $referal_num < 2 )
return $parent_cook;
else
return overflow_in($parent_link);
}
////////////////////////************//////////////////////////////