【发布时间】:2015-07-09 02:56:16
【问题描述】:
我正在 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"];
}
}
提前致谢! 请帮帮我!
【问题讨论】:
-
您是否可以使用您在外部查询上使用的任何内容执行 fetchAll() 以查看是否预先检索所有记录可以解决问题...有时是内部查询(通过相同的连接) 如果前一个查询是逐行而不是一次全部获取,则将覆盖前一个查询。
-
不,我无法执行 fetchAll(),还有其他提示吗?
-
如果 Kevin 所说的查询干扰是一个因素,您可以遍历第一个结果集,将其值存储在本地;然后遍历本地数组。
标签: php mysql sql loops while-loop