|
|
|
| Всем привет, интересует как вывести меню из 1 таблица, с наименьшим кол-вом запросов к бд.
Показываю ужасный вариант, с точки зрения оптимизации совсем не грамотный, но ничего другого на ум не приходит...
$result = mysql_query("select * from cms_content where id_site='1' and sub_cat='0'");
while($row=mysql_fetch_array($result)){
echo "<a href='$row[url]/'><b>".$row['title']."</b></a> <br />";
$res = mysql_query("select * from cms_content where id_site='1' and sub_cat='$row[id]'");
while($rs=mysql_fetch_array($res)){ echo "<a href='$row[url]/$rs[url]/'>".$rs['title']."</a> <br />"; }
}
|
Задача сделать
Основная категория 1
Основная категория 2 ( мы находимся тут)
--подкатегория
--подкатегория
Основная категория 3
Кто знает подскажите ? | |
|
|
|
|
|
|
|
для: bartik
(20.05.2008 в 16:23)
| | Ну в принципе можно взять из БД все данные сразу, а условия отборки (where...) задать при помощи условия if () уже в циклах while(). | |
|
|
|
|
|
|
|
для: SiM(R)
(20.05.2008 в 18:14)
| | ну так, а если у тебя более 2 уровней вложенности меню,
то твой скрипт не работает.
Надо данные в базу занести соответствующим образом
(каждый пункт имеет id и parent_id помимо прочей информации(тема для поиска "Хранение древовидных структур данных в бд"))
и написать функцию которая рекурсивно вызывает сама себя пока не построит меню. | |
|
|
|
|
|
|
|
для: вит
(20.05.2008 в 18:36)
| | Если не сложно, можете показать пример тут, больше всего интересует чтобы было как меньше запросов и они не зависили от новых категорий.
ID
CAT если 0 - значит главная
Спасибо, очень жду... | |
|
|
|
|
3.4 Кб |
|
|
для: bartik
(21.05.2008 в 01:11)
| | Есть вот такой вариант скрипта | |
|
|
|
|
|
|
|
для: ONYX
(21.05.2008 в 06:59)
| | спасибо большое -) | |
|
|
|