我有一個select option
用戶可以選擇國家和州。更改選擇語句以在特定條件下返回所有行
用戶可以選擇 「全狀態」 選項:
<select>state</select>
search all value=''
CA value='CA'
NY value='NY'
查詢:
WHERE country=:country && state=:state
如果我想搜索所有狀態= '' <我應該給出什麼樣的價值 - 搜索所有
我有一個select option
用戶可以選擇國家和州。更改選擇語句以在特定條件下返回所有行
用戶可以選擇 「全狀態」 選項:
<select>state</select>
search all value=''
CA value='CA'
NY value='NY'
查詢:
WHERE country=:country && state=:state
如果我想搜索所有狀態= '' <我應該給出什麼樣的價值 - 搜索所有
謝謝你們,我有找到一個解決方案
if(isset($_GET['state']) && $_GET['state']!=""){
$state=$_GET['state'];
$state_statement=" && state=:state";
}else{
$state_statement="";
}
WHERE country=:country".$state_statement." &&";
if(isset($_GET['state']) && $_GET['state']!=""){$SQL->bindValue(':state', $state, PDO::PARAM_STR);}
因此,如果用戶沒有選擇或選擇所有 - 值= 「」;該聲明將不插入SQL語句
在SQL中,你通常會做這樣的事情:
WHERE (:country is null or country=:country) and
(:state is null or state=:state)
等什麼價值,我應該把裏面 – user2178521
好了,你可以使用任何你想要的值。如果是'''',那麼你會說':country =''。 。 .'或者你可以使用'all''或其他東西。 –
so $ _GET ['search_all'] =「」; - > $狀態= NULL; ? – user2178521
要適應「全部搜索」功能,請重寫您的查詢以避免包含過濾器,或者替換爲value=value
(始終爲true)的SQL。
否則,您可以注入自己的SQL並具有條件的WHERE子句。
" ... WHERE
CASE WHEN '$state'='all' THEN TRUE
ELSE state='$state'
END
... "
這就是沒有有效的PHP或HTML,真不知道你問 – 2013-07-15 01:35:44