這似乎是一個常見的問題,因爲我已經看到很多類似的問題。在php和mysql中用於搜索的多個複選框?
但是,沒有一個答案實際上指出如何從mysql數據庫中進行選擇,這是我的問題。
基本上我有一個表,我在其中存儲搜索數據。
它看起來像這樣:
id blond darkHair busty curvy
---------------------------------------------------
1 blond busty
2 dark hair busty curvy
3 blond curvy
4 blond curvy
,我有一個表格複選框,像這樣:
<form action="search.php" method="post">
<input name="keyword[]" type="checkbox" value="blond" />
<input name="keyword[]" type="checkbox" value="dark hair" />
<input name="keyword[]" type="checkbox" value="busty" />
<input name="keyword[]" type="checkbox" value="curvy" />
</form>
和PHP代碼是這樣的:
if(isset($_POST['keyword']))
{
$keyword = $_POST['keyword'];
foreach ($_POST['keyword'] as $keyword) {
$keywordarray[] = mysqli_real_escape_string($conx, $keyword);
}
$keywords = implode (",", $keywordarray);
$sql = "SELECT * FROM girlsStaff
WHERE (`blond` LIKE '%".$keyword."%') OR (`darkHair` LIKE '%".$keyword."%') OR (`busty` LIKE '%".$keyword."%') OR (`thin` LIKE '%".$keyword."%')" or die();
$query = mysqli_query($conx, $sql);
現在,除了從將此代碼轉換爲PDO或準備好的聲明,還有另一個我不明白的問題!
沒關係我有多少chechboxes選擇...它總是返回從MySQL數據庫最後一次檢查/選擇複選框值的結果....
是有,我失去了一些東西?
我也是,echo $keywords
在我的頁面頂部看到什麼被髮送到頁面,我得到所有選定/檢查框的值正確發送..所以我知道這個問題不存在。
任何幫助或建議,將不勝感激。
'$ SQL = 「...」 或死亡()'是毫無意義的。建立/分配一個字符串不是可以用'或die()'測試的東西。無論如何,可能發生的故障將是致命的錯誤。你需要在mysqli_query()函數中調用或者死掉()。 –