2014-11-23 116 views
1

阿羅哈,我的目標是能夠在「寬路」,以搜索信息在我的數據庫...... 我有一個標籤中,信息就是採用這種發送到MySQL:Mysql的範圍內的搜索

 $save= $_SESSION['cool']; 

//可以說我們功能標籤,並保存50個字有「紅」和它的「白色」 //////,然後將其發送到數據庫,像這樣:

 $save= preg_replace('/([,])/', '$1 $2', $save); //this adds space. 
    $save= preg_replace('/[^\p{L}\p{N}\s]/u', '', $save); // this deletes the comma. 
    $mysqli = new mysqli("localhost", "root", "0", "mydb"); 
    if ($mysqli->query("INSERT INTO table (staff) VALUES ('$save') ")); 

好了,所以我的搜索頁面這是一個標籤框以及我搜索這樣的信息:

$search= $_SESSION['search']; 

//這裏我們保存的白色,紅色和粉紅色... //

$search= preg_replace('/([,])/', '$1 $2', $search); //this adds space. 
$search= preg_replace('/[^\p{L}\p{N}\s]/u', '', $search); // this deletes the comma. 
$mysqli = new mysqli("localhost", "root", "0", "mydb"); 
$fetch = ($mysqli->query("SELECT * FROM table WHERE staff LIKE ('%$search%') ")); 

,你可以看到我曾嘗試使用% %,但是當我輸入的字詞不按順序echo結果卻是一無所獲...

我的問題有沒有改善搜索的方法?所以,當我搜索「紅」「白」,它會顯示所有包含內容的「紅」或「白」 ......

+0

不清楚您的問題,但您可能想要查看FULLTEXT搜索 – Mihai 2014-11-23 17:57:03

+0

您是否找到滿意的解決方案?您想如何改進搜索? – 2014-11-28 18:35:32

回答

1

您可以分割的搜索關鍵字,並分別找他們:

$search1= explode(',',$search); //splits search 
$mysqli = new mysqli("localhost", "root", "0", "mydb"); 
$query = "SELECT * FROM table WHERE staff LIKE '%" . implode("%' AND staff LIKE '%", $search1) . "%'"; 
$fetch = ($mysqli->query($query)); 
+0

你認爲這是一種改進嗎?它與搜索詞的順序無關。你還想支持什麼? – 2014-11-26 11:40:51