|
|
|
| есть каталог многоуровневый. Необходимо после того как я попал в нужную мне категорию, вывести всех родителей
пример: Компьютеры / Комплектующие / Чипсет
я сделал изначально глупо вот так
$cate = mysql_query("SELECT * FROM rus_shop_cat WHERE idcat = '$_GET[idcat]'");
while ($rowca = mysql_fetch_array($cate)){
$categ = mysql_query("SELECT * FROM rus_shop_cat WHERE idcat = '$rowca[pidcat]'");
while ($rowcag = mysql_fetch_array($categ)){
echo $rowcag[name]." / ".$rowca[name];
}
}
| но так узнается только первый и второй, можно и третий и четвертый само собой...
но нельзя ли оптимизировать что бы не гадать сколько вложеностей будет
??? | |
|
|
|
|
|
|
|
для: gagaBaH
(31.05.2006 в 14:35)
| | Обычно испльзуется рекурсивная функция, что вроде
<?php
function menu_navigation($id_catalog, $link)
{
if(!preg_match("|^[\d]+$|",$id_catalog)) return $link;
$query = "SELECT * FROM rus_shop_cat WHERE idcat = $rowca[pidcat]";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка обращения к таблице каталога menu_navigation()");
if(mysql_num_rows($cat) > 0)
{
$catalog = mysql_fetch_array($cat);
$link = "<a class=menu href=index.php?id_parent=".$catalog['idcat'].">".$catalog['name']."</a>->".$link;
$link = menu_navigation($catalog['id_parent'], $link);
}
return $link;
}
?>
|
| |
|
|
|