我創建了一個帶有搜索框和美國50個州的下拉列表的HTML表單。我想要的是讓用戶在搜索框(電子郵件,主題,用戶名等)中輸入關鍵字,然後從下拉列表中選擇一個狀態。通過從下拉列表中選擇一個狀態,我希望我的PHP代碼僅在該選定狀態下從搜索框中查找關鍵字。例如,作爲用戶,我想在華盛頓州找到「足球」並看到結果列表。如何結合搜索框和下拉列表輸出結果(php,mysql)
換句話說,我將如何顯示結果只在選定的狀態結合我的搜索表單?
這裏有一段我的PHP代碼給你所有我想要完成的想法。
// this is pulling the text that was typed in the html search box
$searchbox = $_POST['searchbox'];
// this is pulling the state from my HTML drop down menu
$state = $_POST['state'];
$searchboxresult = mysql_query("
SELECT *
FROM table
WHERE (ID LIKE '%".$_POST['searchbox']."%')
OR (stateID LIKE '%".$_POST['searchbox']."%')
OR (city LIKE '%".$_POST['searchbox']."%')
OR (subject LIKE '%".$_POST['searchbox']."%')
OR (email LIKE '%".$_POST['searchbox']."%')
OR (posting LIKE '%".$_POST['searchbox']."%')
OR (skill LIKE '%".$_POST['searchbox']."%')
OR (event LIKE '%".$_POST['searchbox']."%')
OR (days LIKE '%".$_POST['searchbox']."%')
OR (url LIKE '%".$_POST['searchbox']."%')
");
// and
$statedropdownresult = mysql_query("
SELECT * FROM table WHERE stateID LIKE '%$state%'
");
然後我有一個while循環搜索所有內容並輸出數據。但是我不能讓狀態下拉以限制用戶正在搜索的內容。我只能得到一個或另一個mysql_query與我的while循環結合使用,而不是兩者。出於某種原因,將查詢合併爲一個使用和似乎也不起作用。有任何想法嗎?
我知道代碼是草率的,並且存在安全問題,但是我將在後面進行清理。如果您需要更多細節或澄清某些事情,我會很樂意詳細說明!
我很感謝你在你的問題中承認它,但是爲了其他讀者的利益:**這段代碼容易受到SQL注入**一個*真正*應該使用預先準備好的語句,將一個變量作爲參數不會針對SQL進行評估。如果你不知道我在說什麼,或者如何解決它,請閱讀[Bobby Tables](http://bobby-tables.com)的故事。 – eggyal