Я пытаюсь настроить систему фильтров для небольшого магазина, который я разрабатываю.По сути, я работаю с результатами из списка переменных.На странице products.php, если нет строки запроса, будут показаны все продукты.Однако, если присутствует переменная, я хочу, чтобы она изменила оператор выбора там, где это необходимо.
Однако у меня возникают проблемы с фильтрацией.Если я использую оператор AND для всех переменных, он не фильтруется должным образом, равно как и OR.Так что, если бы я хотел черные ботинки 5-го размера, они бы показывали все пятые размеры независимо от цвета.
Есть ли лучший подход, чтобы принять это, как стать старым добрым старым царапателем!
if ($queryString == NULL){
$query = "SELECT * FROM store_products
JOIN store_cat on store_products.cat=store_cat.cat_id
JOIN prod_sizes on store_products.prod_id=prod_sizes.product_id
JOIN prod_color on store_products.prod_id=prod_color.product_id
GROUP BY store_products.prod_id";
}else{
$query = "SELECT * FROM store_products
JOIN store_cat on store_products.cat=store_cat.cat_id
JOIN prod_sizes on store_products.prod_id=prod_sizes.product_id
JOIN prod_color on store_products.prod_id=prod_color.product_id
where store_products.sale='$sale' OR prod_color.color='$color' OR prod_sizes.size='$size' OR store_products.cat='$cat' GROUP BY store_products.prod_id";
}
пример переменной строки
products.php?sale=&cat_id=1&size=&color=Yellow