2014-11-23 71 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