Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как вывести всю лесенку каталога?
 
 автор: gagaBaH   (31.05.2006 в 14:35)   письмо автору
 
 

есть каталог многоуровневый. Необходимо после того как я попал в нужную мне категорию, вывести всех родителей
пример: Компьютеры / Комплектующие / Чипсет
я сделал изначально глупо вот так

$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];
}
}
но так узнается только первый и второй, можно и третий и четвертый само собой...
но нельзя ли оптимизировать что бы не гадать сколько вложеностей будет
???

   
 
 автор: cheops   (01.06.2006 в 02:19)   письмо автору
 
   для: 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>-&gt;".$link;
      
$link menu_navigation($catalog['id_parent'], $link);
    }
    return 
$link;
  }

?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования