PHP 按姓名和姓氏或中间名搜索

标签 php mysql

我有这样的名字:

“约翰·马丁·巴德” “约翰·埃里克”

好的。想象一下有人搜索“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/

相关文章:

php - 在 PHPStorm 中连接到 MySQL 数据源

php - 在 PHP 中使表彼此相邻显示

php - PHP/SQL登录表单问题

mysql - 查找范围内的记录,需要时四舍五入

php - Laravel 5.2WhereNotIn 查询

php - mysqli连接并从数据库中选择错误

php - MySQL + PHP 选择日期在今天和 future 两周之间的所有行

php - CakePHP 不会自动填充 add.ctp 中的父字段

php - 新PHP上的旧版Wordpress。错误报告

php - MySQL-根据另一个表的列数从一个表获取记录