Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Фильтры для разных групп товаров
 
 автор: grafen   (13.04.2012 в 09:50)   письмо автору
 
 

Здравствуйте. Делаю сайт-каталог. В нём подразделы, для каждого подраздела настраиваются свои фильтры. Параметры для фильтров получаю из адресной строки в виде: site.ru/index.php?filter=[2][433][61]
Для каждой единицы товара есть поле 'filters', в котором хранятся id фильтров, под которые они попадают, в таком виде: [433][61] и т.д.... Поиск ведется по этому полю через LIKE.


<?php
// Разбираем GET
preg_match_all("|\[(.*)\]|iU"$_GET["filter"], $out);

for(
$i=0$i<count($out[1]); $i++)
{
$vzapros.= " `filters` LIKE '%[".$out[1][$i]."]%' OR";
}

// Формируем запрос, отрезаем 3 лишних символа
$yeszapros substr($vzapros0, -3);

// Выводим найденные товары
$bd_t mysql_query("SELECT * FROM `tovarplus` WHERE$yeszapros");
while(
$vt=mysql_fetch_array($bd_t))
{
    echo 
$vt["nm"].'<br>';
}
?>


Меня интересует, имеет ли такая конструкция право на жизнь и что нужно изменить?
Заранее спасибо!

  Ответить  
 
 автор: Valick   (13.04.2012 в 09:54)   письмо автору
 
   для: grafen   (13.04.2012 в 09:50)
 

имеет ли такая конструкция право на жизнь
крайне сомнительно
что нужно изменить?
скорее всего всю логику

  Ответить  
 
 автор: grafen   (13.04.2012 в 12:12)   письмо автору
 
   для: Valick   (13.04.2012 в 09:54)
 

Не могу найти, как это делается по-нормальному... Можете поделиться ссылкой? Или советом, в какую сторону смотреть. Я только до этого додумался и это работает.

  Ответить  
 
 автор: Valick   (13.04.2012 в 12:51)   письмо автору
 
   для: grafen   (13.04.2012 в 12:12)
 

Для каждой единицы товара есть поле 'filters', в котором хранятся id фильтров, под которые они попадают
нужно не поле, а отдельная таблица связи

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования