WHERE子句的存在是爲了幫助我們篩選的結果,我從用戶得到它告訴我如何篩選的結果,如使用WHERE子句,而不是過濾的事情
WHERE brand="'$brand_that_chosen_by_user'"
值其中一個選項是Every brand,意思是根本不過濾。 那麼$ brand_that_chosen_by_user需要什麼值,以便WHERE子句不會過濾一件東西並返回所有品牌的結果。
WHERE子句的存在是爲了幫助我們篩選的結果,我從用戶得到它告訴我如何篩選的結果,如使用WHERE子句,而不是過濾的事情
WHERE brand="'$brand_that_chosen_by_user'"
值其中一個選項是Every brand,意思是根本不過濾。 那麼$ brand_that_chosen_by_user需要什麼值,以便WHERE子句不會過濾一件東西並返回所有品牌的結果。
您將首先測試在添加where子句之前是否選擇了ALL值。
$sql = " SELECT * FROM tbl";
if($brand != 'ALL'){
$sql .= " WHERE brand = '{$brand}'";
}
$brand_that_chosen_by_user = union select user,password from users
您有兩種選擇。
無論是動態添加WHERE
條款需要:
if ($brand != 'Every brand') {
$sql .= " WHERE brand = :brand";
}
或者讓你的SQL語句處理這是一個特殊情況:
SELECT * FROM some_table WHERE :brand = 'Every brand' OR brand = :brand
我使用PDO prepared statements(防止SQL注入) ,所以在這兩種情況下,您都需要將參數綁定到$statement->bindParam("brand", $brand);
。
我想過了,我想知道如果有可能做到這一點,而不會問這個問題。如果沒有,我會接受你的答案。 –
這是做到這一點的最佳方式,可以用奇怪的複雜方法來完成,但這是一種簡單的邏輯方法。 – Jessica
@ShulyCohenPersiado - 爲什麼你不想使用'if'? – andrewsi