カテゴリのナビゲーションの表示に取り掛かるまで、順調に進んでいるシンプルなeコマースシステムを構築するプロジェクトに取り組んできました。
MySQLでカテゴリを作成すると、次のようになります。
id name parent_id
1 books null
2 art 1
3 biography 1
4 games null
5 electronics null
6 FPS 4
親カテゴリを取得してから子カテゴリを取得するために、次のSQLを記述しました。
SELECT parent.name AS parent_name, child1.name AS child1_name
FROM categories AS parent
LEFT OUTER JOIN categories AS child1 ON child1.parent_id = parent.id
WHERE parent.parent_id IS NULL
ORDER BY parent_name, child1_name
この結果、複数の配列を含む配列になります。
Array
(
[0] => Array
(
[parent_name] => Books
[child1_name] => Art
)
[1] => Array
(
[parent_name] => Books
[child1_name] => Biography
)
[2] => Array
(
[parent_name] => Clothes, Shoes & Watches
[child1_name] =>
)
[3] => Array
(
[parent_name] => Computers & Office
[child1_name] =>
)
[4] => Array
(
[parent_name] => Electronics
[child1_name] =>
)
)
この情報を順序付けられていないリストとして表示するのに問題があります。望ましい効果は次のようになります。
<ul>
<li>Books
<ul>
<li>Art</li>
<li>Biography</li>
</ul>
</li>
<li>Computers</li>
<li>Electronics</li>
</ul>
誰かがこの問題の解決策を持っていますか?MySQLコードまたはデータベース構造を変更する必要がありますか?
前もって感謝します。