|
|
|
| Здравствуйте!
Имеется таблица товаров:
CREATE TABLE `products` (
`id` INT NOT NULL , //id товара
`category_id` INT NOT NULL , //id родительской категории
`name` VARCHAR( 50 ) NOT NULL , //название товара
`price` INT NOT NULL , //цена товараPRIMARY KEY ( `id` ) ,
INDEX ( `category_id` , `name` , `price` , `number` )
);
Я произвожу поиск по товарам(название, родительская категория и диапозон цен) с сортировкой по цене в убывающем порядке и вывожу список найденных товаров с помощью запроса:
SELECT * FROM `products` WHERE `category_id`='2' AND `name` LIKE \"%Стол%\" AND `price`=>'1000' AND `price`<='3000' ORDER BY `price` ASC
1) Стол "Железный" - 2900 $ - id=7
2) Стол "Деревнный" - 2800 $ - id=12
3) Стол "Пластмассовый" - 2700 $ - id=3
4) Стол "Картонный" - 2600 $ - id=1
5) Стол "Резиновый" - 2500 $ - id=9
6) Стол "Стеклянный" - 2400 $ - id=13
7) Стол "Чёрный" - 2300 $ - id=4
8) Стол "Зелённый" - 2200 $ = id=8
Мне необходимо узнать порядковый номер товара с id=9( Стол "Резиновый" ) в массиве найденных записей/рядов (основываясь на запросе выше) средствами MYSQL, если такое возможно. Вариант поиска по массиву созданному программно с помощью mysql_fetch_array или mysql_fetch_row не подходит.
Также если такое возможно хотелось бы узнать, как определить какой ряд/запись (товар) будет следующим и предыдущим после товара c id=9( Стол "Резиновый" ) в массиве найденных рядов/записей (основываясь на запросе выше) средствами MYSQL. Опять прогаммное создание массива и обработка не подходят.
P.S. необходимо для реализации блока (смотреть предыдущий товар | смотреть следующий товар) | |
|
|
|
|
|
|
|
для: Борис
(20.01.2009 в 13:18)
| | У Вас нет жесткого критерия сортировки (товары могут иметь одну и ту же цену), следовательно SQL-средствами Вы эту задачу не решите. | |
|
|
|