![]() |
|
Модераторы: skyboy |
![]()
|
|
| zammar |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 289 Регистрация: 30.10.2008 Репутация: нет Всего: нет |
mysql 5
windows XP PHP 5 Как это сделать одним запросом? таблица разделов: cat_id cat_lev cat_left cat_right cat_show 1 1 1 6 0 2 2 2 3 0 3 2 4 5 1 есть настройки: выводить скрытые разделы 1 уровня и выводить скрытые разделы 2 уровня cat_show = 0 - скрытый раздел. если такие настройки выводить скрытые разделы 1 уровня (не установлена) выводить скрытые разделы 2 уровня (установлена) то в данном случае запрос должен вывести разделы только второго уровня или если такие настройки выводить скрытые разделы 1 уровня (не установлена) выводить скрытые разделы 2 уровня (не установлена) то в данном случае запрос должен вывести один раздел второго уровня cat_id = 3 или если такие настройки выводить скрытые разделы 1 уровня (установлена) выводить скрытые разделы 2 уровня (установлена) то в данном случае запрос должен вывести все разделы или если такие настройки выводить скрытые разделы 1 уровня (установлена) выводить скрытые разделы 2 уровня (не установлена) то в данном случае запрос должен вывести раздел cat_id = 1 и раздел cat_id = 3 |
|||
|
||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Не совсем понятно про уровни... (А может я просто ленюсь
Это если всегда выводить раздел cat_id=3, а если ориентироваться только на cat_show, то
То? -------------------- Слава Україні! |
||||
|
|||||
| zammar |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 289 Регистрация: 30.10.2008 Репутация: нет Всего: нет |
нет, Gluttton это не то.
запрос должен учитывать установлена ли настройка для того или иного уровня и то являестя ли раздел закрытым (cat_show = 0) или нет |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
это дерево?
посмотри тут статьи: http://forum.vingrad.ru/forum/topic-257832/0.html по-моему это легко делается |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
примерно так:
Добавлено через 2 минуты и 47 секунд параметры p_lev_1 и p_lev_2 могут принимать значения '0' или '1'. 1 - если нужно показывать скрытые разделы. |
|||
|
||||
| zammar |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 289 Регистрация: 30.10.2008 Репутация: нет Всего: нет |
Ух ты, это в mysql такая беда делается? че то я с такими вещами не всречался никогда :( Если не тяжело расскажите или подкиньте ссылку про то что такое with в начале запроса и что значит вот это ":p_lev_1" = "1" например. Это сообщение отредактировал(а) zammar - 10.8.2009, 19:49 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
||||
|
||||
| zammar |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 289 Регистрация: 30.10.2008 Репутация: нет Всего: нет |
Нууу обнадежили :(
А как в mysql решить мою задачу? По моему никак. Или может все-таки как-то? |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
я правильно понимаю: структура хранения дерева - nested sets?
|
|||
|
||||
| Azket |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2006 Где: Россия, Краснодар Репутация: 1 Всего: 1 |
zammar, поясни принцип, как вообще должна происходить выборка, ибо, если
, то значит значения cat_lev=2 и cat_show=0 (*), так? А если так, то почему должны выбраться
то есть cat_id=2 и cat_id=3, но у cat_id=3: cat_lev=2 и cat_show=1, что не соответсвует значению cat_show в (*). Или нет никакой привязки к значениям полей и нужно просто вывести согласно условиям: И еще вопрос, у тебя в таблице только 3 записи, или это фрагмент? |
|||
|
||||
| DimW |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
это тестовые данные которые я для себя самого и сгенерил. в mysql возможно этого нет, но не суть.
т.е. это твои параметры:
в mysql вроде объявляются так: $p_lev_1. а внимание нужно обратить на:
извиняюсь за неточность ответа, вслед. раз захвачу с собой слюнявчик... Это сообщение отредактировал(а) DimW - 11.8.2009, 08:32 |
||||||
|
|||||||
| zammar |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 289 Регистрация: 30.10.2008 Репутация: нет Всего: нет |
1) skyboy, да, структура делева nested sets.
2) a) Azket. Да, немного не понятно объяснил я. Если "выводить скрытые разделы 2 уровня (установлена)" то это значит что нужно выводить И В ТОМ ЧИСЛЕ скрытые разделы, а НЕ скрытые разделы нужно выводить в любом случае. т.е. настройки действуют только на скрытые разделы. Не скрытые разделы выводяться по любому. б) таблица большая это пример. да, кусок можно сказать. 3) DimW, вечером буду пробовать. |
|||
|
||||
| Azket |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2006 Где: Россия, Краснодар Репутация: 1 Всего: 1 |
делал на MSSQL, думаю от MySQL будет отличаться только написанием имени параметров. @p_l1 - выводить скрытые разделы 1 уровня (1-да, не 1-нет) @p_l2 - выводить скрытые разделы 2 уровня (1-да, не 1-нет) Это сообщение отредактировал(а) Azket - 11.8.2009, 13:05 |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
||||
|
||||
| zammar |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 289 Регистрация: 30.10.2008 Репутация: нет Всего: нет |
Да, это то что надо. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |