返回停止循环迭代

时间:2014-12-14 15:20:43

标签: php codeigniter

我有一个返回所有用户朋友的函数,但只返回一行而不是与查询关联的所有行。

 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 echo“
模型行:”。 $ sql3-&gt; num_rows(); the count is right. I know it must be the return`停止循环迭代。我该如何解决这个问题?

任何帮助,请非常好。

1 个答案:

答案 0 :(得分:0)

是的,我创建了一个数组“friends”,而不是从$sql3返回结果,而是使用array_push($friends,$sql3->result()),然后在循环块之后返回'friends'数组。如果有更直接的方式,请告诉我。我在mysql和php中有点生疏,所以,会欣赏其他解决方案。感谢。