查询内部while循环只显示1个结果

时间:2015-04-29 17:09:30

标签: php mysql sql loops while-loop

我在php中进行了一个while循环,一切顺利,但问题是这样 我不仅想获得用户的id,还想获得另一个表中的其他内容,所以当我继续在这个while循环中进行查询并从第二个表中选择所有内容时(其中id等于从第一个查询得到的结果的id),它只返回1个结果...

所以这是我目前的代码:

public function getFriends($id)
{
global $params;

$get = $this->db->select("{$this->DB['data']['friends']['tbl']}", "*",
                          array(
                                "{$this->DB['data']['friends']['one']}" => $id
                          )
                        );

if($get)
{
    while($key = $get->fetch())
    {
        $query = $this->db->query("SELECT * FROM {$this->DB['data']['users']['tbl']}
                                   WHERE {$this->DB['data']['users']['id']} = :id",
                                   array(
                                         "id" => $key->{$this->DB['data']['friends']['two']}
                                   )
                                 );

        while($row = $query->fetch())
        {
            $params["user_friends"][] = [
                "id"   => $key->{$this->DB['data']['friends']['two']},
                "name" => $row->{$this->DB['data']['users']['username']},
                "look" => $row->{$this->DB['data']['users']['figure']}
            ];
        }
    }
}
else
{
    $params["update_error"] = $params["lang_no_friends"];
}
}

提前致谢! 请帮帮我!

1 个答案:

答案 0 :(得分:0)

诊断PHP和Mysql问题的第一步是在代码中添加行,告诉您每行的操作(每次输入循环时声明;运行每个mysql查询时,吐出查询字符串)你可以缩小问题的范围。通常这会使你在回想起时感到愚蠢:“Duh,这个查询没有返回任何内容,因为我将记录ID格式化错误”等等。

您上面提供的代码段对我来说并不是很有帮助。我是一个疑难解答(不是解析器),所以我需要诊断数据(不是直接代码)比这更有帮助。