Помогите разобраться с деревьями. С использованием PHP + MySQL…
Хочу сделать меню, средствами PHP - элементы беру из базы…
То есть дерево с открытием и закрытием….
- 1 ….
- 1.1 ….
+ 1.1.1 …
+ 2 ….
+ 3 ….
Спустя 8 минут, 24 секунды (15.07.2009 - 17:58) kirik написал(а):
Так как с чем именно помочь не понятно, ищи "mysql иерархия"
Спустя 1 минута, 42 секунды (15.07.2009 - 18:00) Kuliev написал(а):
aserg
тебе надо что-то типа этого Посмотри здесь!
тебе надо что-то типа этого Посмотри здесь!
Спустя 11 дней, 20 часов, 30 минут, 43 секунды (27.07.2009 - 14:31) mc-sim написал(а):
Цитата (Kuliev @ 15.07.2009 - 15:00) |
aserg тебе надо что-то типа этого Посмотри здесь! |
Kuliev, именно то, что надо! такая же проблема стоит..
Есть таблица table, вида:
PHP |
id parent_id title |
у корневых пунктов меню parent_id = 0, у вложеных - id родителя.
Возможно ли реализовать вывод из данной таблицы, без использования функций, Например с помощью циклов (for, foreach и т.п.) и условий, в следующем порядке:
PHP |
zagolovok1 |
Причем, при щелчке на zagolovok2 - открывается подменю этого заголовка, а при щелчке на zagolovok1 - подменю данного заголовка, при этом подменю zagolovok2 сворачивается. (но это не обязательно)
Заранее спасибо за помощь!!!
Впринцыпе, решение от части есть такое:
PHP |
<? |
Но как мне из базы вевести данные в виде массива/многомерного массива?
Очень прошу помощи...
Спустя 4 часа, 19 минут, 30 секунд (27.07.2009 - 18:50) Krevedko написал(а):
ха...а я у себя на сайте такое сделал...только у меня две таблицы. в одной категории, в другой подкатегории..
И при нажатии на категорию через GET передается ее id. Потом идет проверка isset и если что-то есть, то в цикле выводятся нужные подкатегории.
Короче все работает.
И при нажатии на категорию через GET передается ее id. Потом идет проверка isset и если что-то есть, то в цикле выводятся нужные подкатегории.
Короче все работает.
Спустя 57 минут, 16 секунд (27.07.2009 - 19:47) Sylex написал(а):
когда-то поднимал тему, подбирал материалы, может нужно:
http://phpforum.ru/index.php?showtopic=15900
http://phpforum.ru/index.php?showtopic=15900
Спустя 3 часа, 17 минут, 52 секунды (27.07.2009 - 23:05) mc-sim написал(а):
Цитата (Krevedko @ 27.07.2009 - 15:50) |
ха...а я у себя на сайте такое сделал...только у меня две таблицы. в одной категории, в другой подкатегории.. И при нажатии на категорию через GET передается ее id. Потом идет проверка isset и если что-то есть, то в цикле выводятся нужные подкатегории. Короче все работает. |
Krevedko, привет! Можешь код выложить?
Спустя 18 часов, 47 минут, 57 секунд (28.07.2009 - 17:53) Krevedko написал(а):
Да, конечно. Великие гуру меня заклюют конечно, но алгоритм придумал я сам и даже без всяких посторонних сайтов с готовыми алгоритмами.
PHP |
#Функция выборки товаров. Если нет подкатегорий, то выборка всех товаров |
Спустя 20 минут, 15 секунд (28.07.2009 - 18:14) Sylex написал(а):
Цитата (Krevedko @ 28.07.2009 - 20:53) |
Великие гуру меня заклюют конечно |

Krevedko, молодец!

Спустя 3 часа, 11 минут, 47 секунд (28.07.2009 - 21:25) sergeiss написал(а):
Цитата (Krevedko @ 28.07.2009 - 18:53) |
Великие гуру меня заклюют конечно, |
Извиняй, ты сам попросил... Начинаю клевать

Во-первых, то, что сам сделал - это очень хорошо!

Во-вторых. У тебя нету единого стиля запросов. Для одной таблицы используешь обратные кавычки, для другой - нет. Лучше уж тогда пиши всегда.
В-третьих, каждый блок у тебя состоит из вызова одной функции mysql_query.
Лучше будет в каждом блока записать запрос в переменную, а выполнение запроса сделать после всех ИФоф. Там, где у тебя valid_query.
Например, если ты захочешь все-таки написать что-то типа 'or die( mysql_error())', то тебе надо будет это делать только в одном месте.
В-четвертых. Что это за "китайский кодинг"?

В-пятых. Это же функция, вроде... Поэтому я бы рекомендовал не брать величины из GET внутри функции, а передавать их в фунцию в виде параметров функции.
В-шестых, ты не проводишь проверку величин из GET перед использованием их в запросах, а это - широченные ворота для SQL-инъекции.
А в-седьмых, это не критика была, а анализ написанного тобой, чтобы ты мог совершенствоваться

Спустя 13 минут, 41 секунда (28.07.2009 - 21:39) Krevedko написал(а):
эээ..в обратные кавычки я беру только group...и то вынужденная мера, потому что иначе он сразу ошибку выдает, видать путает с group by
над остальным помозгую. спасибо за замечания.
кстати запрос в переменную-хорошая идея..
от инъекций еще не защищался, поскольку еще не разобрался как..
над остальным помозгую. спасибо за замечания.
кстати запрос в переменную-хорошая идея..

от инъекций еще не защищался, поскольку еще не разобрался как..
Спустя 4 минуты, 22 секунды (28.07.2009 - 21:43) sergeiss написал(а):
Цитата (Krevedko @ 28.07.2009 - 22:39) |
от инъекций еще не защищался, поскольку еще не разобрался как.. |
Спустя 1 минута, 29 секунд (28.07.2009 - 21:45) Krevedko написал(а):
спасибо. почитаю щас на ночь глядя

Спустя 9 дней, 23 часа, 27 минут, 45 секунд (8.08.2009 - 21:13) mc-sim написал(а):
Люди, спасибо всем за советы!
Везде шлют на функции, да на рекурсии.
Не подскажите, как можно реализовать данный функционал с помощью циклов, при условии двойной вложенности меню? (пункт-подпункт)
Спасибо!
Везде шлют на функции, да на рекурсии.
Не подскажите, как можно реализовать данный функционал с помощью циклов, при условии двойной вложенности меню? (пункт-подпункт)
Спасибо!

Спустя 1 час, 25 минут, 59 секунд (8.08.2009 - 22:39) jetistyum написал(а):
мне кажется, если пунктов меню заведомо не много, можно их выбрать все одним запросом, а потом просто при выводе смотреть в массиве записи с таким-же id
без рекурсии я тут не вижу решения.
без рекурсии я тут не вижу решения.