我有一个用户查询和一个数据库。我的数据库包含表格。我很想知道,是我查询数据库的方法。我在想什么是:PHP在数据库表中查询多个单词
- 独立查询到由空间
- 遍历每个单词拆分阵列,做一个LIKE“%{$字}%”或
- 上面的那个,只是在每次迭代之前,做一个'AND'
问题是,它不能正常工作。它不会对匹配我的查询的精确电子邮件进行切割。这里是我的代码:
$i=0;
$userQuery = $_POST['q']; // q = "Jonathan gmail"
$sql = "SELECT * FROM addresses WHERE ";
$parts = explode(' ',$userQuery);
$cnt=count($parts);
foreach($parts as $part){
$part = mysql_real_escape_string($part);
if($i!==$cnt-1){
$sql.="(
addresses.name LIKE '%".$part."%' OR
addresses.localpart LIKE '%".$part."%' OR
addresses.domain LIKE '%".$part."%'
) AND
";
} else {
$sql.="(
addresses.name LIKE '%".$part."%' OR
addresses.localpart LIKE '%".$part."%' OR
addresses.domain LIKE '%".$part."%'
)
";
}
$i++;
}
}
我的问题是什么错这个逻辑?这似乎是准确的。
哪里是问题吗?你想达到什么目的? – Mifeet
你能否提供''userQuery'不适合你的代码? –
完成。添加问题和查询 – jkushner