在php中实时排序查询结果

时间:2013-05-01 16:03:57

标签: php javascript json sorting

我有一个查询通过表并输出如下数据:

查询

$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文件中并使用它来对结果进行排序(实时 - 不加载页面)?

您是否可以建议我更好地对结果进行排序,而无需加载页面?

3 个答案:

答案 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循环中进行阵列设置。