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"的所有内容。或"白色" ...
答案 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));