0

我有一个查询,它遍历表并输出如下数据:

询问

$query = mysql_query("SELECT * FROM `products`");
while($row = mysql_fetch_assoc($query)){
    $array[] = $row;
}

foreach ($array as $key) {
    $name[]    = $key['name'];
    $desc[]    = $key['desc'];
    $cost[]    = $key['price'];
}

$c = 0;
while($c<(count($array))){
    echo 'Name: '.$name[$c].'<br>';
    echo 'Desc: '.$desc[$c].'<br>';
    echo 'Price: '.$cost[$c].'<br><br>';
    $c++;
}

结果

名称:xyz1
描述:asdxsadasda
价格:999

名称:xyz2
描述:asdxsadasda
价格:333

名称:xyz3
描述:asdxsadasda
价格:666

我希望能够根据每件商品的价格对这些结果进行排序。
我可以将结果输出到 JSON 文件中并使用它对结果进行排序(无需加载页面即可实时)?

您能否建议我一种更好的方法来对结果进行排序而无需加载页面?

4

3 回答 3

1
$query = mysql_query("SELECT * FROM `products` WHERE `category` order by products.price, products.name");

您选择按 ASC 或 DESC 排序

于 2013-05-01T16:06:45.243 回答
1

如果您必须在 PHP 中对数组进行排序,则在获得查询结果后,请使用array_multisortPHP 中的函数 ( http://www.php.net/manual/en/function.array-multisort.php )

然而,如果你的生活不依赖于 PHP 中的排序,那么在你的 SQL 中对源代码进行排序(就像上帝希望的那样)它会快得多,并且会减轻 Web 服务器的负载。

希望这可以帮助。

于 2013-05-01T16:42:06.717 回答
0
SELECT * FROM `products` order by price, name

此外,不需要您的 foreach,因为您可以在 while 循环中进行数组设置。

于 2013-05-01T16:08:24.810 回答