0

商品をカテゴリーとサブカテゴリーで分けました。クエリと while ループを使用すると、リスト内のすべてのカテゴリを正しくエコーアウトできます。

$query = mysql_query("SELECT * FROM category WHERE `enabled`='1'");

while ($query_row = mysql_fetch_assoc($query)) {
echo '$query_row[catname]';
}

私が達成しようとしているのは、サブカテゴリ名をそれぞれのカテゴリ名の下にリストすることです:

$query = mysql_query("SELECT * FROM category WHERE `enabled`='1'");

while ($query_row = mysql_fetch_assoc($query)) {
echo '<h1>'.$query_row["catname"].'</h1>';

     $sql = mysql_query("SELECT * FROM subcategory WHERE `catid`='$query_row[catid]'");

     while ($row = mysql_fetch_assoc($sql)) {
     echo '$row["subcatname"]';
     }
}

私が得ているのは、すべてのカテゴリのリストです (それは素晴らしいことです)。ただし、その下にはすべてのサブカテゴリのリストがあります。独自のカテゴリに対応するサブカテゴリのみが必要です。どこかで for ループを使用する必要がありますか? 最善の解決策は何ですか?

最終結果は次のようになります。

CARS
mazda
chevy
toyota

BIKES
yamaha
harley
suzuki
honda

BATTERIES
duracel
energizer

今のように。私は得ています

CARS
mazda
chevy
toyota
yamaha
harley
suzuki
honda
duracel
energizer

BIKES
mazda
chevy
toyota
yamaha
harley
suzuki
honda
duracel
energizer

BATTERIES
mazda
chevy
toyota
yamaha
harley
suzuki
honda
duracel
energizer
4

2 に答える 2

0

変更してみる

$sql = mysql_query("SELECT * FROM subcategory WHERE catid='$query_row[catid]'");

$sql = mysql_query("SELECT * FROM subcategory WHERE catid='" . $query_row["catid"] . "'");

于 2013-10-24T15:09:40.633 に答える
0
$query = mysql_query("SELECT * FROM category WHERE `enabled`='1'");

while ($query_row = mysql_fetch_assoc($query)) {
echo '<h1>'.$query_row["catname"].'</h1>';

     $sql1 = mysql_query("SELECT catid FROM subcategory WHERE `catname`='$query_row[catname]'");
     while($row1 = mysql_fetch_assoc($sql1)){

     $sql = mysql_query("SELECT * FROM subcategory WHERE `catid`='row1[catid]'");

     while ($row = mysql_fetch_assoc($sql)) {
     echo '$row["subcatname"]';
     }
     }
     } 

これを試してください。

于 2013-10-24T15:39:01.980 に答える