2016-04-26 66 views
0

我使用PHP的mysqli做一個非常簡單的搜索操作mysqli的搜索,在我的數據庫存在,我要搜索公司名稱字段,這是我使用PHP:從數據庫

SELECT * FROM directory WHERE title LIKE '$sq%' 

稱號是我通過$_POST 休息查詢得到我工作的罰款,但有一個問題,如果公司名稱是

公司名稱,如果我輸入的名字不顯示的搜索結果,但只顯示名字,我如何解決這個問題需要你的幫助

+0

你可以顯示你的代碼的一部分,或只是闡述了這個問題? –

+1

你能重新解釋你的問題嗎? – daremachine

+0

目前還不清楚你在問什麼。您應該使用準備好的語句。 – chris85

回答

0

您需要將查詢的前端作爲通配符。 %意味着左側和右側允許其他任何東西。

根據您目前的查詢:

SELECT * FROM directory WHERE title LIKE '$sq%' 

您需要具體字詞的標題開始。請嘗試:

SELECT * FROM directory WHERE title LIKE '%$sq%' 

匹配搜索項之前的任何內容並繼續處理它。

這應該是parameterized還有:

SELECT * FROM directory WHERE title LIKE ? 

然後綁定'%' . $sq . '%'

更多關於通配符:http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html

簡單的例子:

'chri%'將匹配chrischrisssschristopher,將不匹配kris

%ris%將匹配chrischrisssschristopherkris

%ris將匹配chriskris

+0

@Sikander改進,OFC你也可以使用OR運算符在哪裏例如。如%a%或標題如Aa%的標題,如果你需要的話。 – daremachine

+0

@daremachine'%a%'可以匹配任何「像Aa%'匹配的東西。 – chris85

+0

你是對的,但我的觀點是「my- $ var%」或「$ var%」 – daremachine