我有这样的名字:
“约翰·马丁·巴德” “约翰·埃里克”
好的。想象一下有人搜索“john bud”或“bud john”。
我想返回“JOHN MARTIN BUD”
但我这样做的方式同时返回“JOHN MARTIN BUD”和“JOHN ERIK”
我正在这样做:
$keywords = $_POST['campobusca'];
$keywords=explode(' ',$keywords);
$string = implode("%' AND name LIKE '%", $keywords);
$sql = "SELECT * FROM names WHERE name LIKE '%$string'";
.
.
.
如何执行此搜索?
谢谢
最佳答案
你有一个小错字:
$keywords = "john doe";
$keywords=explode(' ',$keywords);
$string = implode("%' AND name LIKE '%", $keywords);
echo "SELECT * FROM names WHERE name LIKE '%$string'";
将输出:
SELECT * FROM names WHERE name LIKE '%john%' AND name LIKE '%doe'
您需要查询中缺少的尾随通配符:
$sql = "SELECT * FROM names WHERE name LIKE '%$string%'";
^
关于PHP 按姓名和姓氏或中间名搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811859/