Возврат останавливает итерацию цикла

У меня есть функция, которая возвращает всех друзей пользователя, но возвращает только одну строку вместо всех строк, связанных с запросом.

 function getAllFriends($email){

             $myid = $this->getStudentId($email);

             $this->db->where('aluno_id',$myid);
             $sql =  $this->db->get('mutamba_amigos');

             if($sql->num_rows() > 0){

                 foreach ($sql->result() as $r){
                     $this->db->where('id',$r->amizade_id);

                     $sql2 =  $this->db->get('mutamba_amizades');

                     if($sql2->num_rows() > 0){

                            foreach ($sql2->result() as $f){
                                $this->db->where('id',$f->aluno_id);
                                $sql3 = $this->db->get('alunos');
                                if ($sql3->num_rows() > 0) {

                                   // echo "<br> Model rows: ". $sql3->num_rows();
                                    return $sql3->result();
                                }else{

                                      return false;
                                }
                             } 

                        }

                 }


             }else{
                // echo 'nothing found';
                return false;
             }


         }

Если я прокомментирую return $sql3->result();' and uncomment theэхо "
Строки модели: ". $ Sql3-> num_rows ();the count is right. I know it must be thereturn` остановка цикла итерация. Как я могу решить это?

Любая помощь, пожалуйста, будет очень благодарен.

1 ответ

Правильно, я создал массив "friends" и вместо того, чтобы возвращать результат из $sql3 я использовал array_push($friends,$sql3->result()) затем вернул массив 'friends' после блока цикла. Если есть более прямой путь, пожалуйста, дайте мне знать. Я немного заржавел в mysql и php, поэтому буду признателен за другие решения. Благодарю.

Другие вопросы по тегам