我在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"];
}
}
提前致谢! 请帮帮我!
答案 0 :(得分:0)
诊断PHP和Mysql问题的第一步是在代码中添加行,告诉您每行的操作(每次输入循环时声明;运行每个mysql查询时,吐出查询字符串)你可以缩小问题的范围。通常这会使你在回想起时感到愚蠢:“Duh,这个查询没有返回任何内容,因为我将记录ID格式化错误”等等。
您上面提供的代码段对我来说并不是很有帮助。我是一个疑难解答(不是解析器),所以我需要诊断数据(不是直接代码)比这更有帮助。