我有一个查询通过表并输出如下数据:
查询
$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文件中并使用它来对结果进行排序(实时 - 不加载页面)?
您是否可以建议我更好地对结果进行排序,而无需加载页面?
答案 0 :(得分:1)
$query = mysql_query("SELECT * FROM `products` WHERE `category` order by products.price, products.name");
您选择按ASC或DESC排序
答案 1 :(得分:1)
如果必须在PHP中对数组进行排序,在获得查询结果后,请使用PHP中的array_multisort
函数(http://www.php.net/manual/en/function.array-multisort.php)
但是,如果你的生活不依赖于PHP中的排序,那么按照SQL中的来源排序(就像上帝的意图那样),它会更加快速,并且会减轻Web服务器的负担。
希望这有帮助。
答案 2 :(得分:0)
SELECT * FROM `products` order by price, name
此外,您不需要使用foreach,因为您可以在while循环中进行阵列设置。