0

これが可能かどうかはわかりません...しかし、すべてのカテゴリとそのサブカテゴリを一覧表示するSQLクエリを作成する必要があります。問題は、カテゴリとサブカテゴリが別々のテーブルに保存されていることです。

データベースの構造は次のとおりです。テーブル名:「カテゴリ」、列:「ID、名前」

テーブル名:「Sub_Categories」。列:「ID、名前、Category_ID」。category_IDは、IDを使用して各サブカテゴリをその親カテゴリにリンクするために使用されます。

現在、すべての「カテゴリ」をプルするSQLクエリコードがあります...各カテゴリの下にサブカテゴリのリストが表示されるようにするにはどうすればよいですか?

<?php
$catlist= mysql_query('SELECT * FROM categories WHERE hide = 0 ORDER BY `order` ASC')
or die(mysql_error());  
?>
<?php foreach ($catlist as $catitem): ?>
<h2 class="category"><?php echo $catitem['name']; ?></h2>
<?php endforeach; ?>
<?php ?>
4

2 に答える 2

1

これにより、残りの情報が得られます。次に、レイアウトを実行し、繰り返しのカテゴリテキストを抑制する必要があります。

SELECT * 
FROM categories c, sub_categories s
WHERE c.hide = 0 
AND s.category_id = c.category_id
ORDER BY `order` ASC
于 2012-12-03T21:38:24.417 に答える
0

サブカテゴリテーブルへの結合を使用できます。http://dev.mysql.com/doc/refman/5.0/en/join.html

ただし、テーブルレベルでトップレベルとサブレベルのカテゴリを区別するのではなく、parent_id、left_id、right_idの各フィールドを使用してすべてを1つのテーブルに配置することをお勧めします。基本的に、これにより、階層内のカテゴリの深さが無制限になります。それを適切に実装する方法については少し調査が必要かもしれませんが、はるかに強力です。

于 2012-12-03T21:38:40.067 に答える