我想創建一個將查詢數據庫表的搜索功能。使用php和mysql在數據庫中搜索
以下表單提交的搜索參數:
<form id="form_searchJobs" name="form1" method="post" action="">
<label id="destinationLabel">Destination</label> <input name="destination_search" type="text" id="destination_search"/> <br/>
<label id="cargoLabel">Cargo</label> <input type="text" name="cargo_search" id="cargo_search"/> <br/>
<label id="deadlineLabel">Deadline</label> <input type="text" name="deadline_search" id="datepicker"/> <br/>
<input type="submit" name="search" id="search" class="button3" value="Search" onClick="showSearchedString()"/>
<a href="../Jobs.php" id="clearSearch" class="button3">Clear Search</a>
</form>
搜索功能應該讓你同時在每個單獨的文本框的或全部的搜索。
我有後續的數據庫查詢:
if (isset($_POST['destination_search']) || (isset($_POST['cargo_search']) || (isset($_POST['deadline_search'])))) {
$destination_search = $_POST['destination_search'];
$cargo_search = $_POST['cargo_search'];
$deadline_search = $_POST['deadline_search'];
$newDate = date("y-m-d", strtotime($deadline_search));
$query = sprintf("SELECT * FROM jobs WHERE destination LIKE %s OR jobs.cargo LIKE %s OR RSVP_date LIKE %s ORDER BY destination ASC", GetSQLValueString("%" . $destination . "%", "text"),GetSQLValueString("%" . $deadline_search . "%", "text"),GetSQLValueString("%" . $newDate . "%", "text"));
}
else {
$query = "SELECT * FROM jobs ORDER BY destination ASC";
}
但這查詢顯示所有的結果,無論搜索項。我的查詢出了什麼問題,但是現在我不知道爲了同時從單個變量或全部變量中進行搜索?
由於您在查詢中使用'OR',因此您必須修改目的地,貨物,截止日期的查詢,您將獲得所有結果 – justrohu 2014-10-01 09:23:34
但是,如果我使用'AND'而不是'OR',則查詢需要所有要填寫的字段返回搜索結果。那麼我怎麼才能根據目的地,貨物,截止日期修改查詢? – user1825067 2014-10-01 10:00:21