php中的实时排序查询结果


Live sort query results in php

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

查询

$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文件中输出结果并使用该文件对结果进行排序(live-无需加载页面)吗?

你能给我一个更好的方法来排序结果而不必加载页面吗?

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

然而,如果你的生活不依赖于在PHP中排序,在你的SQL源排序(上帝希望的方式),它将会快得多,它将减轻web服务器的负载。

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

选择按ASC或DESC排序

SELECT * FROM `products` order by price, name

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