Вывод из БД

foxig

Новичок
Доброй ночи!

Столкнулся с проблемой вывода из БД, при выводе доп.меню из Бд, У каждой кнопки основного меню есть своя доп.менюшка, проблема в том что доп меню не изменяется а у всех остается одно и тоже.
PHP:
<?php
print '<div id="contaner">';
//вытягиваем основные элементы меню
$sql = "SELECT * FROM tbl_pages
WHERE pg_pid = 0
ORDER BY pg_id";
$res = mysql_query($sql);
if(!$res) exit(mysql_error());
//открываем основной список
print '<ul id="nav">';
while($row = mysql_fetch_assoc($res)){
//выводим элементы основного списка
            print '<li id="selected"><a href="?p'. $row['pg_id'].'">' . $row['pg_link'] . '</a></li>';

	
	//вытягиваем подменю к каждому меню
    $sql1 = "SELECT * FROM tbl_pages WHERE pg_pid = " . (int)$row['pg_id'];
    $res1 = mysql_query($sql1);
    if(!$res1) exit(mysql_error());
    //открываем список подменю
    print '<ul id="nav1">';
    while($row1 = mysql_fetch_assoc($res1)){
    //выводим элементы зависимого списка
       print '<li id="selected"><a href="'.$row1['pg_id'].'">'.$row1['pg_link'].'</a></li>';	
    }
    print ' </ul>';
}
print ' </ul>'; 
print '</div>';
?>
поле `pg_pid` показывает родителя для подпунктов меню, которые должны выводиться когда у pid & id одинаковые значения, но так почему то не происходить???

--
-- Table structure for table `tbl_pages`
--

CREATE TABLE IF NOT EXISTS `tbl_pages` (
`pg_id` int(11) NOT NULL AUTO_INCREMENT,
`pg_link` varchar(150) DEFAULT '',
`pg_title` varchar(255) DEFAULT NULL,
`pg_cont` text,
`pg_nav` int(2) DEFAULT NULL,
`pg_order` tinyint(3) DEFAULT NULL,
`pg_pid` int(11) NOT NULL,
PRIMARY KEY (`pg_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ;
 

xayam

Новичок
ну да, у тебя же два раза одно и тоже выбирается из базы (где = 0)...
Хотя лучше данные покажи из таблицы, я так чего-то не очень соображу :)

PHP:
//выводим элементы основного списка
            print '<li id="selected"><a href="?p'. $row['pg_id'].'">' . $row['pg_link'] . '</a></li>';
Закрывать тег li надо ниже
 

foxig

Новичок
При таком расклады не показывается доп.меню, по идей если доп.меню значение pg_pid идентично значению основного меню pg_id то тогда она выводиться, вроде бы и правильно написано, только это подменю появляется у всех основных.

--
-- Table structure for table `tbl_pages`
--

CREATE TABLE IF NOT EXISTS `tbl_pages` (
`pg_id` int(11) NOT NULL AUTO_INCREMENT,
`pg_link` varchar(150) DEFAULT '',
`pg_title` varchar(255) DEFAULT NULL,
`pg_cont` text,
`pg_nav` int(2) DEFAULT NULL,
`pg_order` tinyint(3) DEFAULT NULL,
`pg_pid` int(11) NOT NULL,
PRIMARY KEY (`pg_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ;

--
-- Dumping data for table `tbl_pages`
--

INSERT INTO `tbl_pages` (`pg_id`, `pg_link`, `pg_title`, `pg_cont`, `pg_nav`, `pg_order`, `pg_pid`) VALUES
(1, 'Пункт 1', 'Пункт 1', 'первая страница', 2, 1, 0),
(2, 'Пункт 2', 'Пункт 2', 'вторая страница', 2, 2, 0),
(3, 'Пункт 3', 'Пункт 3', 'третья страница', 2, 3, 0),
(4, 'Пункт 4', 'Пункт 4', 'четвертая страница', 2, 4, 0),
(23, 'подпункт1', 'подпункт1', 'Подпункт к первому меню', 2, 1, 1);
 

xayam

Новичок
С тегами у тебя неправильно

li вроде закрывать не нужно вообще
плюс здесь
print '<ul id="nav1">';
id должно быть разным, а у тебя везде одинаково.
Если нужно одинаково, то используешь атрибут class

PS Извини комп не использую для "тренировки" :) С компом такое легко решается.
 

foxig

Новичок
короче я понял что проблема со стилями а не с выводом из бд. Спасибо xayam
 

KorP

Новичок

foxig

Новичок
Да варианты и подсказки у вас отличные, я думаю вы можете много предложить для вывода информации или же по написанию кода, вариантов. Буду рад обсудить. но мне на данном этапе нужен лишь самый простой способ вывести инфу. но так понимаю у меня на данном этапе только сложность с стилями.
Потому что выводиться не под а рядом. и у всех родителей основного меню а должен быть у своего
 
Сверху