[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: фильтр размеров
DarkGuy
Добрый день!
Размеры сохраняю в подобном виде
44, 45,50 или 40-50 или 41, 43-50
тип колонки TEXT
Как организовать поиск ?
конкретно интересует запрос mysql.
т.е клиент выбирает 45 и выдаются все вещи 45 размера



Спустя 2 часа, 7 секунд (9.08.2012 - 02:29) kamanch написал(а):
Варианта 2:
1. мудрёёёённый, но:
а) правильный; // сам собой потом гордиться будешь.
б) структрированный; // легко разобраться в базе и коде.
с) индексируеммый. // скорость работы намного выше, нежели парсинг текстов.

2. пацанячий от лени, но не надо базу и админку переписывать.

Вариант 1:
1.У тебя есть таблица товаров products. Поле размеров в ней сносишь.
2. Создаешь отдельную таблицу размеров products_size, в которой поля
size_id | product_id | size_value // первичный индекс таблицы | id продукта | сам размер

/*
вообще говоря, нужно было бы отдельно сделать таблицу размеров, и третью, в которой были бы поля id_ размера | id_товара Но, т.к. размер у тебя целочисленный и имеет разрядность 2, как и индексы в таблице размеров, то мы ничего третьей таблицей не выигрываем. Если же будут еще буквенные размеры, типа S, M, L, X, XL, тогда да - третью таблицу.
*/

Далее, в админке выводишь чекбоксы всех размеров и чекбоксишь те, которые для товара нужны. Кнопочку клац - в таблицу размеров добавилось столько строк, сколько для этого товара было чекбоксов отмеченно.

На сайте же делаешь запрос из таблицы размеров для конкретного товара. Если размеры идут подряд, то формируешь вывод типа 40-45. Если не подряд, то просто их через запятую выводишь.
С поиском вообще все просто.
$query = "SELECT `products_id` FROM `products_size` WHERE `size_value` = " . $size; 


Вариант 2:
Ничего с базой не делаешь, продолжаешь ее насиловать запросом
$query = "SELECT `products_id` FROM `products` WHERE `size` LIKE ''%" . $size. "%";

Только никому это не показывай, т.к. друзья засмеют, а заказчики морду набьют.

Надеюсь, помог :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.