我的网站上有一个页面,列出了一堆产品,每个产品都有一个用户评级.我使用一个查询为每个产品提取一些数据点("详细信息查询"),并使用第二个查询返回每个产品的平均用户评级("评级查询").
我想将每个产品的用户评级附加到"详细信息查询"结果集中,然后按降序排序.我已经阅读了Stack Overflow,php.net等上的一堆条目,我想我需要使用usort()和自定义函数,但每次我将MySQL结果传递给usort()时我都会收到一个php错误说我传递给usort()的对象不是数组.例如,我试过:
$data = mysql_fetch_array($details_query);
usort($data,"compare");
Run Code Online (Sandbox Code Playgroud)
执行上述操作会抛出错误,说$ data不是数组.我究竟做错了什么?
此外,如果有人对如何完成这项工作有任何其他建议,我真的很感激.出于某种原因,我现在非常艰难.
谢谢!
你错误地使用MySQL函数 - mysql_fetch_array不接受SQL查询,它需要一个MySQL结果资源:
http://php.net/manual/en/function.mysql-fetch-array.php
所以你想要这样的东西:
$all_data = array();
$sql = "SELECT blah FROM blah";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$all_data[] = $row;
}
// $all_data is now a 2-D array with all your data.
usort($all_data, "compare");
Run Code Online (Sandbox Code Playgroud)