При создании сайта столкнулся с такой проблемой: создаю выпадающее вертикальное меню, пункты которого должны подгружаться из БД. Создаю 2-х уровневое меню (т.е. родительський элемент и подпункт). HTML, CSS, JavaScript исходники для менюшки есть. Но, не хватает фантазии для написания скрипта, который подгружал бы пункты меню из Базы.
Надеюсь на вашу фантазию и опыт! Или, может, на полезную какую-то ссылочку...
Заранее благодарю!!!
Спустя 15 часов, 12 минут, 31 секунда (5.11.2010 - 15:49) Nazaretto написал(а):
Неужели никаких идей нет?
Спустя 46 минут, 5 секунд (5.11.2010 - 16:35) DmitryOpalev написал(а):
Есть... к примеру, если выпадающий список <ul>...</ul>
То можешь выводить как <li>Данные из базы</li>
То можешь выводить как <li>Данные из базы</li>
Спустя 2 часа, 13 минут, 5 секунд (5.11.2010 - 18:48) Nazaretto написал(а):
Цитата (DmitryOpalev @ 5.11.2010 - 13:35) |
Есть... к примеру, если выпадающий список <ul>...</ul> То можешь выводить как <li>Данные из базы</li> |
Та это понятно... просто, там же выпадающее меню. Соответсвенно, нужно грамотно пописать циклы...
Вот что у меня есть на данный момент:
<div class="glossymenu">
<?
$db = mysql_connect ("localhost","root","");
mysql_select_db("oxford",$db);
$result = mysql_query("SELECT * FROM books_categories WHERE status='1' ORDER BY id ASC",$db);
$myrow = mysql_fetch_array($result);
$db = mysql_connect ("localhost","root","");
mysql_select_db("oxford",$db);
$result2 = mysql_query("SELECT * FROM books_categories WHERE status='2' AND father='84' ORDER BY id ASC",$db);
$myrow2 = mysql_fetch_array($result2);
do
{printf ("<a class='menuitem submenuheader' href='view_cat.php?cat=%s'>%s</a></p>",$myrow["id"],$myrow["title"])
?>
<div class='submenu'>
<ul>
<li>
<?
do
{printf ("<a href='view_cat.php?cat=%s'>%s</a></p>",$myrow2["id"],$myrow2["title"]);}
while ($myrow2 = mysql_fetch_array($result2));
?>
</li>
</ul>
</div>
<?
}
while ($myrow = mysql_fetch_array($result));
?>
</div>
В итоге, получилось, что выводятся все родительские пункты (цикл). А вот подпункты выводятся только для ПЕРВОГО род.пункта... для остальных же - нет.. в чём может быть причина - даже не знаю...
Спустя 5 минут, 44 секунды (5.11.2010 - 18:54) sergeiss написал(а):
Цитата (Nazaretto @ 5.11.2010 - 19:48) |
для остальных же - нет.. в чём может быть причина - даже не знаю... |
Проблема первая - кривейший "поповский" код с циклом do-while, "впихнутым" туда, где он не нужен.
Поэтому я настойчиво рекомендую прочитать тему http://phpforum.ru/index.php?showtopic=21916 и тему http://phpforum.ru/index.php?showtopic=32799.
Плюс к этому, автор выбрал совершенно неправильный раздел (ну это поправимо, конечно... ), и еще создал совершенно неинформативный заголовок темы. На ПХП+ЭсКуЭлль не создаётся меню!
По всем этим причинам тема закрывается с рекомендацией автору ознакомиться с приведенными ссылками. Затем, после коррекции кода, я рекомендую создать тему в ПРАВИЛЬНОМ разделе и назвать её более адекватно. Чтобы заголовок отражал суть вопроса.