我有一个返回所有用户朋友的函数,但只返回一行而不是与查询关联的所有行。
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`停止循环迭代。我该如何解决这个问题?
任何帮助,请非常好。
答案 0 :(得分:0)
是的,我创建了一个数组“friends”,而不是从$sql3
返回结果,而是使用array_push($friends,$sql3->result())
,然后在循环块之后返回'friends'数组。如果有更直接的方式,请告诉我。我在mysql和php中有点生疏,所以,会欣赏其他解决方案。感谢。