Как получить иерархические данные с помощью рекурсии в PHP с codeigniter - PullRequest
0 голосов
/ 16 августа 2011

нижеприведенная функция имеет рекурсивную функцию для организационной структуры; таблица family_user:

function getrel($userid)
{

      $sql =  'SELECT DISTINCT *  FROM family_user WHERE userid in ( SELECT  DISTINCT rel_id FROM family_rel WHERE tree_id ='.$userid.')';

       $query = $this->db->query($sql);                                        
       if ($query->num_rows() > 0)
       {
            foreach($query->result_array() as $row)

            {
                $user[] = $row['userid'];
                if(@in_array($row['userid'],$user))
                {
                    echo "---------->";
                    echo $row['userid'];
                    echo "</br>";                            
                    $this->getrel($row['userid']);        
                    //echo "HAI";                                            
                }                                           
            }                 
           // return $user;                                                         
       }
}

вышеуказанная функция не имеет ограничений. Пожалуйста, решите

1 Ответ

0 голосов
/ 16 августа 2011

Код, который вы опубликовали, будет находиться в бесконечном цикле, когда когда-либо будет использоваться идентификатор пользователя при вызове совпадений функции в базе данных.

Чтобы разорвать рекурсивный цикл, должно быть условие, которое выходит из цикла после конечного числа прогонов.

Чтобы предоставить вам хорошее решение, укажите, чего бы вы хотели достичь с помощью своего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...