2013-10-24 4 views
0

Я разделял продукты по категориям и подкатегориям. С запросом и циклом while я могу правильно отследить все категории в списке.Список подкатегорий по категории - тянуть от mysql

$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 
+0

Что вы подразумеваете под «Мне нужны только подкатегории, которые идут со своей категорией»? какие подкатегории вы хотите? – ogres

ответ

0

Попробуйте изменить

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

в

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

+0

такой же результат. без изменений – Guage

+0

Если catid в подкатегории соответствует catid в категории, этот код может привести только к списку, который вы показываете, когда все подкатегории существуют для всех категорий в базе данных. – redelschaap

+0

Возможно, вы можете сбросить структуру и экспорт данных этих таблиц. – redelschaap

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"]'; 
    } 
    } 
    } 

попробовать это.

+0

catname - это не то же самое, что и catid, поэтому $ sql вернет false. – Guage

Смежные вопросы