MySQL的排序导致PHP ...?

Chr*_*ris 1 php mysql

我的网站上有一个页面,列出了一堆产品,每个产品都有一个用户评级.我使用一个查询为每个产品提取一些数据点("详细信息查询"),并使用第二个查询返回每个产品的平均用户评级("评级查询").

我想将每个产品的用户评级附加到"详细信息查询"结果集中,然后按降序排序.我已经阅读了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不是数组.我究竟做错了什么?

此外,如果有人对如何完成这项工作有任何其他建议,我真的很感激.出于某种原因,我现在非常艰难.

谢谢!

Ros*_*der 5

你错误地使用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)