例如,我有一个获取一些数据的mysql查询。然后根据它获得的一些数据运行另一个查询。
如果我只是返回第一个查询,在我的情况下$qOne
。一切都很好。
但是,在使用我的while循环while ($row = mysql_fetch_array($qOne))
后,它返回一个空数组。 (但我返回的第二个查询是否有效)
我试着看看是否可以将第一个查询“保存”在另一个var中,而不是像$savedResult = $qOne
那样搞乱,然后我只返回$ savedResult但是没有用。
有谁知道如何在下方获取我的功能以返回两个结果?谢谢!
function getFoods($sort, $start, $limit) {
$qOne = mysql_query("SELECT a.id, a.name, a.type, AVG(b.r) AS fra, COUNT(b.id) as tvotes FROM `foods` a LEFT JOIN `foods_ratings` b ON a.id = b.id GROUP BY a.id ORDER BY fra DESC, tvotes DESC LIMIT $start, $limit;");
$i = 0;
$qry = "";
while ($row = mysql_fetch_array($qOne)) {
$fid = $row['id'];
if ($i > 0)
$qry .= " UNION ";
$i++;
$qry .= "SELECT fid, ing, amount FROM foods_ing WHERE fid='$fid'";
}
$qTwo = mysql_query($qry);
return array($qOne, $qTwo);
}
答案 0 :(得分:1)
当您返回两个查询结果资源时,请记住在您真正想要使用它们时需要从中获取它们。 (我们没有看到您实现该代码的代码。)
要在已经完成循环后使用$qOne
,必须将其重绕回第一个位置。这是通过mysql_data_seek()
mysql_data_seek($qOne, 0);