Фильтр продуктов SQLPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Фильтр продуктов SQL

Сообщение Anonymous »

У меня есть две таблицы:
  • sklep_produkty: id | имя
  • sklep_atr_prod: id | id_prod | атр | значение
Изображение


В URL-адресе я использую ?fq=color('Czerwony'), чтобы получить значение, я использую код:

Код: Выделить всё

$fq = $this->getRequest()->getParam('fq');
$fq = explode(',', $fq);

$myArray = array();
foreach($fq as $param){
$literal_pattern = "/('[^']*')/";
$fq = preg_match($literal_pattern, $param, $token);
$myArray[] = str_replace("'", "", $token[0]);
}
Тогда я получаю id_prod следующим образом:

Код: Выделить всё

$filterActionQuery = $db->select()->from('sklep_atr_prod', array('id_prod', 'wartosc'));

foreach($myArray as $parames){
$filterActionQuery->where('wartosc = ?', $parames);
}
$filterActionresult = $db->fetchAll($filterActionQuery);
SQL-запрос:

Код: Выделить всё

SELECT `sklep_atr_prod`.`id_prod`,
`sklep_atr_prod`.`wartosc`
FROM `sklep_atr_prod`
WHERE (wartosc = 'Czerwony')
Результат:

Код: Выделить всё

Array
(
[0] => stdClass Object
(
[id_prod] => 1
[wartosc] => Czerwony
)

[1] => stdClass Object
(
[id_prod] => 3
[wartosc] => Czerwony
)

)
И это нормально, но когда я хочу использовать другой фильтр «размер», я создаю URL-адрес следующим образом: ?fq=color('Czerwony'),size('XL ')

Результат SQL:

Код: Выделить всё

SELECT
`sklep_atr_prod`.`id_prod`,
`sklep_atr_prod`.`wartosc`
FROM `sklep_atr_prod`
WHERE (wartosc = 'Czerwony') AND (wartosc = 'XL')
И это дает мне пустой результат. Как сделать SQL-запрос, используя два параметра «Czerwony» и «XL», чтобы получить id_prod = 3.

Подробнее здесь: https://stackoverflow.com/questions/455 ... cts-filter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»