我有兩個表:SQLproducts過濾
sklep_produkty:ID |
sklep_atr_prod:id | id_prod | atr | ?值
在URL我用FQ =顏色( '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
)
)
這是好的,但要使用antother FILTR 「大小」 當我做出這樣的URL:FQ =顏色( 'Czerwony'),大小( 'XL')
SQL結果:
SELECT
`sklep_atr_prod`.`id_prod`,
`sklep_atr_prod`.`wartosc`
FROM `sklep_atr_prod`
WHERE (wartosc = 'Czerwony') AND (wartosc = 'XL')
這給我空的結果。如何使用兩個parametrs 'Czerwony' 和 'XL',以獲得使SQL查詢id_prod = 3
FQ =顏色( 'Czerwony')的尺寸( 'XL') – scaisEdge