0

私は2つのテーブルを持つこのようなデータベースを持っています

アイテム
ID | 題名
------------------------------
1 バス
2 プレーン
3 ジェット
4 シューズ
5 椅子
並べ替え
ID | カテゴリ ID | アイテム ID | ソート順
-------------------------------------------------- ------------------------------
1 3 3 3                 
2 3 2 1
3 3 4 2
4 3 1 0
5 4 5 4

SORTINGテーブルの「SortOrder」列に基づいて、 ITEMSテーブルのタイトルを一覧表示する方法がわかりません。

これが私がこれまでに試したことです:

   SELECT * 
     FROM Items
LEFT JOIN Sorting ON Items.id = Sorting.ItemID 
    WHERE Sorting.CatID = 3 
 ORDER BY Sorting.SortOrder

何が間違っているのかわかりません

編集

MySQL クエリが正しいように見えますが、Items テーブルの $row['id'] を出力すると正しくないため、問題が発生しています。li タグの ID に基づいてデータベースを更新する Ajax PHP 更新があります。

$row['id'] が正しく出力されない理由はありますか? Items.id = Sorting.ItemIDと関係があると思います

4

2 に答える 2

1

これは期待どおりに動作します - SQLFiddle DEMO :

SELECT i.*, s.SortOrder
FROM items i, sorting s
WHERE i.id = s.ItemID 
  AND s.CatID = 3 
ORDER BY s.SortOrder
于 2013-02-20T04:22:25.917 に答える
0

試す

SELECT * 
     FROM Items
LEFT JOIN Sorting ON Items.id = Sorting.ItemID 
    WHERE Sorting.CatID = 3 
 ORDER BY Sorting.SortOrder ASC

addDESCまたはASCinORDER BY句。

を使用するASCと、ソート結果は になり0 1 2 3 4ますSortOrder

タイトルを取得するサンプル PHP コード

<?php
    $query  = mysqli_query(above_query)or die(mysqli_error());
    while($result = mysqli_fetch_assoc($query))
    {
           echo $result['title']. '<br/>';
    }
于 2013-02-20T04:13:28.670 に答える