PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Alexs84
Отправлено: 10 Августа, 2017 - 12:56:11
Post Id



Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




есть таблица меню menu с даными, например:

id = '1','2','3','4','5','6'
name = 'меню 1','меню 2','под меню 3',' под меню 4','меню 5','под меню 6'
id_parent = '0','0','1,2','1,2','5','6'

есть такой запрос

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id, name, id_parent FROM menu
  2. WHERE id_parent = $id_menu


вопрос можно ли так вообще сравнивать, если в поле id_parent значение "1,2"?

как мне вывести нужный список разделов меню если подменю могут относится к двум разделам одновременно, например "под меню 4" может быть в "меню 1" и в "меню 2"

Зарание благодарен
 
 Top
rgl
Отправлено: 10 Августа, 2017 - 13:57:38
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Авг. 2017  
Откуда: замкадье


Помог: 1 раз(а)




Может, попробовать так?
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id, name, id_parent FROM menu
  2. WHERE id_parent RLIKE '[[:<:]]$id_menu[[:>:]]'

(Отредактировано автором: 10 Августа, 2017 - 13:58:19)

 
 Top
Vladimir Kheifets
Отправлено: 11 Августа, 2017 - 08:36:36
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 3 раз(а)




Alexs84 пишет:
есть таблица меню menu с даными, например:

id = '1','2','3','4','5','6'
name = 'меню 1','меню 2','под меню 3',' под меню 4','меню 5','под меню 6'
id_parent = '0','0','1,2','1,2','5','6'

есть такой запрос

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id, name, id_parent FROM menu
  2. WHERE id_parent = $id_menu


вопрос можно ли так вообще сравнивать, если в поле id_parent значение "1,2"?

как мне вывести нужный список разделов меню если подменю могут относится к двум разделам одновременно, например "под меню 4" может быть в "меню 1" и в "меню 2"
Зарание благодарен

Доброе утро!

1.Так как Вы написали WHERE id_parent = $id_menu сравнивать нельзя т.к. поле id_parent текстовое. Можно записать WHERE id_parent ='$id_menu' [/b] или использовать REGEXP или LIKE

2.Уточните, пожалуйста, Вам в результате нужно получить такое меню:
CODE (html):
скопировать код в буфер обмена
  1. <ol>
  2.    <li>меню 1
  3.       <ul>
  4.          <li>под меню 4</li>
  5.          <li>............</li>
  6.       </ul>
  7.    </li>
  8.    <li>меню 2
  9.       <ul>
  10.          <li>под меню 4</li>
  11.          <li>............</li>
  12.       </ul>
  13.    </li>
  14.     <li>меню 5</li>
  15.     <li>меню 6</li>  
  16. </ol>


3. Может быть вместо:
id_parent = '0','0','1,2','1,2','5','6'
сделать так:
id_parent = '1','2','1,1','2,1','5','6'

(Отредактировано автором: 11 Августа, 2017 - 09:43:41)

 
 Top
Alexs84
Отправлено: 11 Августа, 2017 - 10:14:43
Post Id



Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Большое всем спасибо, помог способ rgl

CODE (SQL):
скопировать код в буфер обмена
  1.     SELECT id, name, id_parent FROM menu
  2.     WHERE id_parent RLIKE '[[:<:]]$id_menu[[:>:]]'
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB