[英]how to create a search filter in php?
這是我第一次創建搜索過濾器。 我想到了“切換語句”。 無論用戶輸入什么關鍵字,都應該簽入switch語句。 該switch語句將檢查mysql數據庫中是否存在值。 如果存在,它將在表格中顯示信息。 如果不是,那么它將重定向到“ NoResultsFound.html”。 到目前為止,這就是我的想法。 我對么? 如果沒有,我應該怎么修改?
為什么不使用SQL完成此操作?
SELECT * FROM wherever WHERE keywords LIKE '%keyword%'
這將返回與關鍵字匹配的行,如果返回空記錄集,則可以將其重定向到NoResultsFound.html
。
好吧,“關鍵字”一詞具有特殊含義,與ArtistName和SongName無關。
因此,從所有字段中的子字符串搜索開始。
$search = mysql_real_escape_string($_GET['search']);
$query = "SELECT * FROM table WHERE ArtistName LIKE '%$search%' OR SongName LIKE '%$search%'";
另請注意,在任何地方重定向用戶都沒有用。 只需停留在同一頁面上,在搜索字符串中顯示輸入的值(通過htmlspecialchars()
),然后讓用戶對其進行編輯並進行另一次搜索
您只需將search關鍵字添加到查詢中,然后檢查查詢是否返回任何結果。 我將參考我已經構建的一個簡單的數據庫連接類(PHP)( 在此處 ),因為它使解釋起來更加容易:
$keyword = mysql_real_escape_string($_POST['keyword']);
$db = new Database();
$db->connect(DB_NAME,DB_HOST,DB_USER,DB_PASS);
$query = "SELECT your_field FROM your_table WHERE target_field LIKE '%".$keyword."%'";
$result = getAssocArray($query);
if (!empty($result)) {
// do something if there is at least a match
}
else {
// do something if there is not match
}
$db->disconnect();
讓我知道是否有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.