Mysql广泛搜索

时间:2014-11-23 17:49:21

标签: php html mysql

Aloha,我的目标是能够以一种广泛的方式在我的数据库中搜索信息" ... 我有一个标签框,信息发送到mysql使用:

       $save= $_SESSION['cool'];  

//让我们说,我们分类并保存了50个含有" red"和"白色"在其中//////然后将其发送到数据库,如下:

     $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结果时没有...

我的问题 有没有办法改善搜索? 所以当我搜索" red"和"白色"它将显示包含" red"的所有内容。或"白色" ...

1 个答案:

答案 0 :(得分: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));