Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2011, 10:52   #1
foxig
Новичок
Джуниор
 
Регистрация: 07.05.2011
Сообщений: 8
По умолчанию меню и подменю

Здравствуйте, подскажите правильно ли я думаю.
Создаю Основное меню (Родитель) и подменю которое должно выводиться у своего родителя, для чего будет использоваться nav_pid то есть если у подменю nav_pid имеет значение такое же как и id у основного меню, то выводится подменю. Вроде бы все правильно сложил, не не получается так.
Вот таблица:
PHP код:
CREATE TABLE `tbl_menu` (
  `
nav_idint(11NOT NULL AUTO_INCREMENT,
  `
nav_pidint(11NOT NULL,
  `
nav_namevarchar(15NOT NULL,
  
PRIMARY KEY  (`nav_id`)
ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;
 
-- 
-- 
Дамп данных таблицы `tbl_menu`
-- 
 
INSERT INTO `tbl_menuVALUES (10'Пункт1');
INSERT INTO `tbl_menuVALUES (20'Пункт2');
INSERT INTO `tbl_menuVALUES (81'Подпункт1');
INSERT INTO `tbl_menuVALUES (91'Подпункт2');
INSERT INTO `tbl_menuVALUES (102'Подпункт3');
INSERT INTO `tbl_menuVALUES (112'Подпункт4'


Поле nav_pid показывает родителя для подпунктов меню
У Пункт1 есть два подпункта - Подпункт1 и Подпункт2 - поэтому в поле nav_pid для этих подпунктов я ставлю 1 - это идентификатор(поле nav_id) Пункта1.

PHP код:
print '<div id="contaner">';
//вытягиваем основные элементы меню
$sql "SELECT * FROM tbl_menu 
WHERE nav_pid = 0
ORDER BY nav_id"
;
$res mysql_query($sql);
       if(!
$res) exit(mysql_error());
//открываем основной список
print '<ul>';
           while(
$row mysql_fetch_assoc($res)){
//выводим элементы основного списка
        
print '<li id="selected"><a href="?p="'$row['nav_id']'">' $row['nav_name'] .          '</a></li>';
        
        
//вытягиваем подменю к каждому меню
    
$sql1 "SELECT * FROM tbl_nav WHERE nav_pid = " . (int)$row['nav_id'];
    
$res1 mysql_query($sql1);
    if(!
$res1) exit(mysql_error());
    
//открываем список подменю
       
print '<ul id="nav">';
        while(
$row1 mysql_fetch_assoc($res1)){
    
//выводим элементы зависимого списка
          
print '<li id="selected"><a href="?p="'$row1['nav_id']'">' $row1['nav_name'] . '</a></li>';  
    }
      print 
' </ul>';
}
print 
' </ul>'
print 
'</div>' 


Подскажите почему у меня выводится подпункты у всех основных меню то есть родителей а не каждый у своего.

Последний раз редактировалось foxig; 08.05.2011 в 10:58.
foxig вне форума Ответить с цитированием
Старый 08.05.2011, 11:27   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от foxig Посмотреть сообщение
Подскажите почему у меня выводится подпункты у всех основных меню то есть родителей а не каждый у своего.
Не знаю, какого результата вы ожидаете - но у меня ваш код (синтаксические ошибки в коде исправлены) выдаёт такой результат:

Т.е. работает корректно.
Andkorol вне форума Ответить с цитированием
Старый 08.05.2011, 11:37   #3
foxig
Новичок
Джуниор
 
Регистрация: 07.05.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Не знаю, какого результата вы ожидаете - но у меня ваш код (синтаксические ошибки в коде исправлены) выдаёт такой результат:

Т.е. работает корректно.
По идеи корректно если я не перепутал данную ошибку с стилями
Меню горизонтальное, то есть если я выбрал пункт1 то под ним появляется все подпункты1, а если выбрал второй пункт то появляються все подпункты2, а у меня подпункты вылазят все и не пойму то ли стили то ли php.

Что должно получиться:

Пункт1 Пункт2 Пункт 3

Подпункт1 подпункт1 подпункт1
________________________________
Пункт1 Пункт2 Пункт 3

Подпункт2 подпункт2 подпункт2
___________________________
Пункт1 Пункт2 Пункт 3

Подпункт3 подпункт3 подпункт3


То есть получается что во всем виновны стили?

Или же мне к доп.меню надо применить dop.menu {display:none}
и потом dop.menu:hover{display:block}.
Не помойму один фиг не получиться

Последний раз редактировалось foxig; 08.05.2011 в 11:43.
foxig вне форума Ответить с цитированием
Старый 08.05.2011, 11:48   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от foxig Посмотреть сообщение
То есть получается что во всем виновны стили?
Ну вы сами видите - php-код отрабатывает корректно, получает и выводит нужные результаты в правильном порядке.

А ошибки в CSS - это вам в другой раздел.

PS: и "стили" ни в чём не виноваты - выполняются правила, написанные вами...
Andkorol вне форума Ответить с цитированием
Старый 08.05.2011, 11:59   #5
foxig
Новичок
Джуниор
 
Регистрация: 07.05.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Ну вы сами видите - php-код отрабатывает корректно, получает и выводит нужные результаты в правильном порядке.

А ошибки в CSS - это вам в другой раздел.

PS: и "стили" ни в чём не виноваты - выполняются правила, написанные вами...
Да, вы безусловно правы, и спасибо за то что развеяли мои сомнения)
foxig вне форума Ответить с цитированием
Старый 07.07.2011, 19:28   #6
6yha
 
Регистрация: 28.03.2011
Сообщений: 3
По умолчанию Re:

Если были синтаксические ошибки , это что за ошибки , ответьте пожалуйста
6yha вне форума Ответить с цитированием
Старый 07.07.2011, 20:24   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от 6yha Посмотреть сообщение
Если были синтаксические ошибки , это что за ошибки , ответьте пожалуйста
Здесь рыбу не раздают - здесь учат её ловить...

http://phpfaq.ru/debug
Дебаггинг или поиск и устранение ошибок
Andkorol вне форума Ответить с цитированием
Старый 09.07.2011, 19:36   #8
6yha
 
Регистрация: 28.03.2011
Сообщений: 3
По умолчанию

Я уже вас просто умоляю не могу найти ошибку... Но я не могу исправить ошибку

print '<li><a href="?id_podmenu="'$row['id_podmenu']'>' . $row['nazv_menu'] . '</a></li>';

Ошибка: Parse error: syntax error, unexpected T_VARIABLE in Q:\home\localhost\www\block\left.ph p on line 20
6yha вне форума Ответить с цитированием
Старый 09.07.2011, 19:43   #9
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

6yha
Почитайте что такое конкатенация. А ещё посчитается сколько у вас кавычек, какого они типа и все ли кавычки стоят в нужном порядке.

На этом форуме "профессионалы" советуют новичкам не смотреть в мануал, но я в PHP чайник, поэтому я посоветую посмотреть мануал по PHP:
http://php.net/manual/ru/language.operators.string.php
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 09.07.2011 в 19:46.
Johnatan вне форума Ответить с цитированием
Старый 09.07.2011, 20:05   #10
6yha
 
Регистрация: 28.03.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
6yha
Почитайте что такое конкатенация. А ещё посчитается сколько у вас кавычек, какого они типа и все ли кавычки стоят в нужном порядке.

На этом форуме "профессионалы" советуют новичкам не смотреть в мануал, но я в PHP чайник, поэтому я посоветую посмотреть мануал по PHP:
http://php.net/manual/ru/language.operators.string.php

Код я проверял все должно быть правильно, я менял по - разному НО к сожалению ничего всего лишь одна строчка
6yha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню и подменю gta HTML и CSS 2 20.03.2011 21:16
подменю DrStrangeLove HTML и CSS 1 13.10.2010 18:06
горизонтальное подменю ilma55 WordPress и другие CMS 4 11.09.2010 12:37
Создание подменю extatic Помощь студентам 1 07.08.2007 20:51
Как добавить подменю в системное контекстное меню Lucky13 Win Api 5 19.03.2007 20:17