![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
StreetPeople |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 7.7.2007 Репутация: нет Всего: 1 |
Встала задача написать левое меню, как на картинке, для интернет-магазина.
Когда мы находимся в каком-то каталоге мы должны видеть все товары, которые находятся в нём, а также целый список каталогов, которые находятся на уровне родителя этого каталога, и все каталоги которые находятся на 2-а уровня вложенности выше и т.д., причём каждый список товаров, должен начинаться на 2-а элемента раньше чем текущий каталог. Проще говоря мне нужно написать mySQL запрос который позволяет вытащить из таблицы n элементов, 2-а из которых (на изображении серые) находятся "выше" чем элемент который мы запрашиваем через ID (сразу оговорюсь, что ID не циферный). Ребята по MSSQL советовали воспользоваться "SELECT Top -2", но к сожалению в MySQL есть только LIMIT, на котором, то, о чём я говорю написать невозможно. У кого-нить есть какие-нибудь соображения на сей счёт? Может кто-то с этим уже сталкивался? Это сообщение отредактировал(а) StreetPeople - 16.9.2008, 09:53 Присоединённый файл ( Кол-во скачиваний: 11 ) ![]() |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
возможно, я тебя не понял, но мне кажется, что "через id" ты запрашиваешь не "телефоны", а "nokia n810". тогда решение будет зависеть от структурі хранения дерева. потом: много ли разделов имеется? если немного, можно формировать дерево полностью, а потом отсекать ненужное. |
|||
|
||||
ТоляМБА |
|
||||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 10 Всего: 252 |
По идее должен выдать
Оно? |
||||
|
|||||
StreetPeople |
|
||||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 7.7.2007 Репутация: нет Всего: 1 |
Немного подредактировал запрос ТоляМБА
на
Вообще ID циферный, конечно, счётчик. Я сказал что id не циферный потому что, сразу понял, что мне предложат вариант с операторами сравнения, но такой способ не подходит, потому что можно случайно нарушить целостность представления товаров БД, потому что есть поле по которому все каталоги сортируются `mis_products_relations`.`position`, если это поле равно 0 для нескольких каталогов, тогда они сортируются соотв. порядку их созданию... Таким образом мы можем спокойно исправить поле `mis_products`.`id` любого товара на любое число не вписывающееся в последовательность и больше ID запрошенного товара и тогда запрос выше перестанет работать корректно, точнее - он это поле будет пропускать... skyboy Товаров и каталогов может быть очень много, в среднем 500-1000, поэтому закачивать всю таблицу было бы не экономично... А насчёт Nokia N810, это просто неуглядел))) В общем он тоже чёрный, как и остальные нокии... Это сообщение отредактировал(а) StreetPeople - 16.9.2008, 11:25 Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
||||
|
|||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |