我想創建一個搜索功能,用戶可以在文本框中編寫所有關鍵字
(就像谷歌搜索)例如: - 日本的汽車,日本的二手車。在第二個例子中,我們可以在我的數據庫的Item表中標識屬於不同列的三個關鍵字。例如: - 來自條件列的「使用」關鍵字,來自類別列的「cars」關鍵字和來自位置列的「Japan」關鍵字。目前我使用兩個下拉列表來選擇位置和類別。並選中複選框以選擇條件。所以我想用一個文本框把這些所有關鍵字。請幫忙..!!!如何使用一個文本框執行搜索功能,並使用php codeigniter搜索mysql數據庫的許多列中的值
1
A
回答
0
您可以將搜索欄的內容捕獲到一個php var(例如$ inputRaw)中。
$inputRaw = $_POST[yourSearchBox]; // capture the raw user search input
從那裏,你可以清理一下:
$InputRawArr = $searchResultsArr = array();
// process raw input
// trim any extra spaces outside the string
// then remove any double spaces inbetween the search terms
$inputRaw = str_replace(' ', ' ', trim($inputRaw));
// separate each search term into an array
$inputRawArr = explode(' ', $inputRaw);
$inputRawArr = array_filter($inputRawArr);
所以現在,如果用戶輸入「日本二手車」,你將結束:
$inputRawArr =
[0] = 'used',
[1] = 'cars',
[2] = 'in',
[3] = 'Japan'
從這裏你應該可以創建一些邏輯來搜索$ inputRawArr,以獲得與你想要的結果相關的字符串。結賬Php's in_array function for this part
因此,如果在數組$ inputRawArr中使用了'',那麼將該部分查詢設置爲true。與'汽車'一樣。
確定是否選擇了一個位置('Japan'),我會將$ inputRawArr內容循環到可能位置列表中。如果一個或多個單元格與列表中的某個位置相匹配,則將這些$ inputRawArr單元格存儲到PHP生成的WHERE子句中以獲取位置。
相關問題
- 1. PHP使用多個文本框搜索多列的MySQL搜索
- 2. 使用一個搜索框搜索多個數據庫列
- 3. 使用Android搜索對話框搜索多個數據庫列
- 4. 如何搜索在MySQL數據庫的多個表使用PHP
- 5. MySQL PHP搜索使用一個輸入來搜索多列
- 6. 如何使用PHP搜索多個列值的MySQL表中的值使用PHP
- 7. 使用PHP/MYSQL的搜索功能
- 8. 如何使用查找功能來搜索文本框的值?
- 9. 如何使用java在mysql數據庫中的多列搜索
- 10. 如何使用PHP搜索欄檢索MySQL數據庫數據
- 11. 使用Java搜索SQL數據庫(多文本字段搜索)
- 12. 使用PHP搜索MySQL數據庫
- 13. 使用php搜索mysql數據庫
- 14. 使用MySQL數據庫和PHP搜索
- 15. 如何使一個搜索功能,搜索一個數組
- 16. 使用PHP和mysql搜索功能
- 17. 使用Android搜索對話框搜索兩個或多個數據庫列
- 18. 使用複選框文本值在數據庫中執行搜索
- 19. 如何在Mysql數據庫中搜索多個詞搜索
- 20. 使用Access中的一個搜索框搜索多個字段
- 21. 如何使多個複選框搜索值的數據庫和
- 22. 如何使用文本框和搜索按鈕C#搜索數據庫?
- 23. 如何使用文本框在ASP.NET中搜索數據庫
- 24. PHP/MySQL的搜索功能:
- 25. 如何在php中使用cookie的值進行搜索 - codeigniter
- 26. 搜索多列使用PHP
- 27. 使用mysql的書籍數據庫的php搜索腳本
- 28. 執行MySql全文搜索使用NHibernate
- 29. 使用MySQL搜索文本
- 30. 使用Mysql的JSP搜索功能
如果我輸入'blah blah',則您的消毒無效。僅僅把兩個空間變成一個空間是不夠的;這種方式只需將4個空格變成2.您需要將2 *或更多*空格變成一個空格。 – meagar
確實如此,但我通過array_filter()修復了這個問題,以刪除超過雙倍空間的任何實例。所以如果用戶輸入blah blah,數組會將其存儲爲[0] ='blah',[1] ='',[2] ='blah'。然後array_filter()將只返回單元格[0] ='等等'和[1] ='等等'雖然這可能是不好的做法。 – gsmaciel
謝謝大家...... !!我得到了將字符串分割成任意數量空格的答案 - $ inputRaw = preg_split('/ \ s + /',$ searchText); –