Возврат останавливает итерацию цикла
У меня есть функция, которая возвращает всех друзей пользователя, но возвращает только одну строку вместо всех строк, связанных с запросом.
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 the
return` остановка цикла итерация. Как я могу решить это?
Любая помощь, пожалуйста, будет очень благодарен.
1 ответ
Правильно, я создал массив "friends" и вместо того, чтобы возвращать результат из $sql3
я использовал array_push($friends,$sql3->result())
затем вернул массив 'friends' после блока цикла. Если есть более прямой путь, пожалуйста, дайте мне знать. Я немного заржавел в mysql и php, поэтому буду признателен за другие решения. Благодарю.