Здравствуйте уважаемые, помогите с проблемкой пожалуйста: Мне необходимо вывести данные в виде дерева, попытался сделать так: PHP: <?php $result= mysql_query ("SELECT * FROM oborud WHERE parent = '0'",$db); $myrow= mysql_fetch_array ($result); do { printf ("<p><a href = view_uch.php?parent=%s>%s</a></p>",$myrow['id'], $myrow['name']); $result1= mysql_query ("SELECT * FROM oborud WHERE parent = '$myrow[id]'",$db); $myrow1= mysql_fetch_array ($result1); do { printf ("<p class='uch'><a href = view_uch.php?parent=%s>%s</a></p>",$myrow1['id'], $myrowob1['name']); } while ($myrow1= mysql_fetch_array ($result1)); } while ($myrow= mysql_fetch_array ($result)); ?> но так выводится только то количество "веток", которое я пропишу, а нужно до бесконечности чтобы, сколько есть данных столько что б и выводилось.
про себя: ну и стиль, на чём прогить учился (это моё субъективное, забей) совет: достаточно одной выборки из базы. выбирай всё и дальше гугли по слову рекурсия. ps: хотя можно конечно изгильнуться и без рекурсивно-вызываемых функция, но думаю это лишнее ))
та не научился еще, в этом вся соль, только-только постигаю азы. А можно попросить, если не затруднит показать свой вариант, как бы выодил то что вывел я? мне будет полезно, пожалуйста.
http://phpclub.ru/faq/Tree?v=w5u там есть всё. и совет - сначала данные лучше подготовить, а потом выводить
Jeck111 про стиль - это я например про стиль записи циклов.. do { } while или вывод данных printf'ом ) ну это грю, субъективно __ про свой вариант. что-то типа этого. извини, не проверял. если интересно - сам проверь. не будет работать - разберёмся. будут вопросы по скрипту - тоже задавай. Код (Text): <?php function getTree($parent_id = 0) { global $arr; if(isset($arr[$parent_id])) { foreach($arr[$parent_id] as $myrow) { echo "<p><a href = view_uch.php?parent={$myrow['id']}>{$myrow['name']}</a>\n"; getTree($myrow['id']); echo "</p>"; } } } $result = mysql_query ("SELECT * FROM oborud ORDER BY parent_id ASC", $db); $myrow = mysql_fetch_array ($result); $arr = array(); while ($myrow = mysql_fetch_array ($result)) { $arr[$myrow['parent_id']][] = $myrow; } getTree();
Здравствуйте еще разок на этой теме, пишу здесь потому что все также занимаюсь деревьями. У меня вот какой вопрос: мне надо увеличить на 2 в базе все значения, которые я указываю. Пробую вот так: PHP: $result1 = mysql_query ("UPDATE kw3_tree SET left_key = '{left_key+2}', right_key = '{right_key+2}' WHERE left_key >'$right_key'"); Вместо +2, обнуляются все значения, которые я указываю. Почему так? я вроде догадался, потому что он присваивает не имеющееся значене увеличинное на 2, а присваивает, именно left_key+2 и right_key+2 соответсвенно, а вот как мне обновить, так как надо мне не знаю, в этом и заключается вопрос.
PHP: <?php $result1 = mysql_query ('UPDATE kw3_tree SET left_key = left_key+2, right_key = right_key+2 WHERE left_key >'.(int)$right_key);
флоппик Имеется в виду то, что древовидная функциональность в основном обеспечивается, в первом случае, структурой базы данных, а во втором - архитектурой объекта...
Я не знаю, что имеешь ввиду ты, но эти термины имеют четкое значение. А ничем абсолютно не связаны между собой.
Можно абстрагироватся до потери сознания, но связи между выводом дерева и паттерном проектирования все равно нет.
с чего-то нормального... ты вообще видел его рожу? почему думаешь у него она такая хитрая? Зы. http://evgeniypopov.e-luge.net/
ну тогда с тебя один совет: хорошая книга по php на твой взгляд. сейчас читаю "Разработка web-приложений на PHP и MySQL" Лаура Томсон, Люк Веллинг., тяжеловато идет, но идет
Ну уже с чего начал с того и получилось, не вернуть ведь. Главное что не собираюсь останавливаться, стараюсь развиваться..