在我正在處理的項目中,我需要一些幫助。在不知道用戶輸入是什麼的情況下進行查詢(SQL,PHP)
這裏是我想要做的事:
我與MySQL和PHP網頁上的工作。有一個輸入字段,用戶將輸入一個位置(國家,城市,州),日期,比賽長度或比賽名稱。問題是,他們可以輸入這些項目的任何組合(就像你可以在谷歌中)。
之後,我必須查詢數據庫才能顯示結果。這是我現在使用的查詢:
LIKE '$str%'
OR city LIKE '$str%'
OR state LIKE '$str%'
OR country LIKE '$str%'
OR race_distancia LIKE '$str%'
$ str是一個持有輸入文本的php變量。
我正在使用'$ str%',因爲它會使用我創建的索引,儘管由於正則表達式在最後添加了,因此無法正常工作。所以如果我輸入例如:'邁阿密5k',它將不起作用。由於沒有比賽被稱爲邁阿密5K,也沒有一個位置......但是邁阿密有5克赫赫。
我在想空間上的輸入文本爆炸和每個爆炸項目運行查詢,然後刪除重複的結果。這將工作,但我試圖找到最有效的解決方案,我不確定如何避免重複的項目。
感謝先進!
首先使用類似PDO(PHP數據庫對象)來準備查詢以防止SQL注入。 – 2012-03-29 20:22:14
這些似乎相當定義的搜索條件,我會有一個國家的框,然後一個城市的框....可能有一個列表中的一些和他人的自由文本 – 2012-03-29 20:22:27
如果空間爆炸將無法如果有一個兩個字的城市。此外,如果有人搜索一個也是州名的城市,IE「紐約紐約」,您的查詢將無法按預期進行。 – Norse 2012-03-29 20:40:33