darakanoit
@darakanoit

Переливание пользователей в МЛМ матричной системе?

Доброго времени суток,имею следующий отрывок кода.
$ref_1 = $_SESSION['ref'];
    if ($_SESSION['ref']) {
        /*$ref_1 = $_SESSION['ref'];
        $ref_lvl = mysqli_fetch_assoc(mysqli_query($db, "SELECT * FROM users WHERE id= $ref_1 "));
        $ref_2 = $ref_lvl[ref_1];
        $ref_3 = $ref_lvl[ref_2];
        $ref_4 = $ref_lvl[ref_3];
        $ref_5 = $ref_lvl[ref_4];
        $ref_6 = $ref_lvl[ref_5]; */
        
    $ref_slot_1 =  mysqli_fetch_assoc(mysqli_query($db, "SELECT ref_slot FROM users WHERE id= $ref_1 "));
    $ref_slot_2 =  mysqli_fetch_assoc(mysqli_query($db, "SELECT ref_slot FROM users WHERE ref_1 = $ref_1 "));
    $ref_slot_3 =  mysqli_fetch_assoc(mysqli_query($db, "SELECT ref_slot FROM users WHERE ref_2 = $ref_1 "));
    $ref_slot_4 =  mysqli_fetch_assoc(mysqli_query($db, "SELECT ref_slot FROM users WHERE ref_3 = $ref_1 "));
    $ref_slot_5 =  mysqli_fetch_assoc(mysqli_query($db, "SELECT ref_slot FROM users WHERE ref_4 = $ref_1 "));
    $ref_slot_6 =  mysqli_fetch_assoc(mysqli_query($db, "SELECT ref_slot FROM users WHERE ref_5 = $ref_1 "));
    
    
        if (ref_slot_1[ref_slot] < 3) {
            $ref_1 = $_SESSION['ref'];
            $ref_lvl = mysqli_fetch_assoc(mysqli_query($db, "SELECT * FROM users WHERE id= $ref_1 "));
            $ref_2 = $ref_lvl[ref_1];
            $ref_3 = $ref_lvl[ref_2];
            $ref_4 = $ref_lvl[ref_3];
            $ref_5 = $ref_lvl[ref_4];
            $ref_6 = $ref_lvl[ref_5];
        }
    
    
        if ($ref_slot_1[ref_slot] >= 3) {
            if (ref_slot_2[ref_slot] < 3) {
                $ref_lvl = mysqli_fetch_assoc(mysqli_query($db, "SELECT * FROM users WHERE id= $_SESSION['ref'] "));
                $ref_1 = $ref_lvl[ref_1];
                $ref_2 = $_SESSION['ref'];
                $ref_3 = $ref_lvl[ref_3];
                $ref_4 = $ref_lvl[ref_4];
                $ref_5 = $ref_lvl[ref_5];
                $ref_6 = $ref_lvl[ref_6];
            }
            if (ref_slot_2[ref_slot] >= 3) {
                 if (ref_slot_3[ref_slot] < 3) {
                     $ref_lvl = mysqli_fetch_assoc(mysqli_query($db, "SELECT * FROM users WHERE id= $_SESSION['ref'] "));
                    $ref_1 = $ref_lvl[ref_1];
                    $ref_2 = $ref_lvl[ref_2];
                    $ref_3 = $ref_lvl[ref_3];
                    $ref_4 = $ref_lvl[ref_4];
                    $ref_5 = $ref_lvl[ref_5];
                    $ref_6 = $ref_lvl[ref_6];
            }
    }
    }
        
	else {
		$ref_1 = 1;
        $ref_2 = 1;
        $ref_3 = 1;
        $ref_4 = 1;
        $ref_5 = 1;
        $ref_6 = 1;
    }

Не могу реализовать переливание пользователей.
У каждого пользователя может быть максимум 3 реферала,если больше то надо отнести его к уровню ниже и так до 6 отслеживаемых уровней. Ума не хватает додумать.
В базе рефералов отслеживаю через ref_1 = id ref_2 = id итд
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Посмотрите в сторону процессинга на PHP с помощью рекурсии. Для МЛМ-матриц рекурсии – самое оно. Глядишь, и код перестанет так сильно пахнуть.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы