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

PHP で配列をソートする必要がある場合は、クエリ結果を取得した後、PHP でarray_multisort関数を使用します ( http://www.php.net/manual/en/function.array-multisort.php ) 。

しかし、あなたの生活が PHP でのソートに依存していない場合、SQL のソースでソートすると (神が意図した方法で)、はるかに高速になり、Web サーバーの負荷が軽減されます。

お役に立てれば。

于 2013-05-01T16:42:06.717 に答える
1
$query = mysql_query("SELECT * FROM `products` WHERE `category` order by products.price, products.name");

ASCまたはDESCによるソートを選択します

于 2013-05-01T16:06:45.243 に答える
0
SELECT * FROM `products` order by price, name

また、while ループで配列の設定を行うことができるため、foreach は必要ありません。

于 2013-05-01T16:08:24.810 に答える