我的 mySQL 命令有点问题,它似乎无法正常工作。我正在构建一个简单的 PHP 搜索功能,需要它检查两列(同一个表),如果任一列中的内容与它类似,那么我需要它来输出它。如果我只在一列中查找它似乎可以工作,但是如果我将 OR 语句放入其中,它仍然可以工作,只是似乎每次都无法提取正确的数据。这有点难以解释,所以我将在下面使用一个例子。
PHP 和 mySQL:
<?php
$in=$_GET['txt'];
$msg="";
if(strlen($in)>0 and strlen($in) <20 ){
$t=mysql_query("SELECT * FROM es_sermons WHERE searchTags like '$in%' OR serviceName like '$in%'");
while($nt=mysql_fetch_array($t)){
$msg.=$nt[name]."$nt[serviceName]<br>";
}
}
echo $msg
?>
数据库表:
id | serviceName | searchTags
1 | Prayer Positions | Prayer, Fasting, Morning, Pastor, Donnie
2 | Ephesians Part 9 | Ephesians, Pastor, Donnie, Wednesday
3 | Gaining a Clear Vision | Missions, Ministry, Donnie, Pastor, Morning
4 | Downpour Part 7 | downpour, Tim, 3, Evening, Sunday
5 | God is For Me Part 4 | Pastor, Donnie, Morning, God is For Me
搜索结果示例:
搜索:“牧师” -> 结果为:2, 5 -> 应该是 2, 3, 5 -> 为什么遗漏了 3?
搜索:“Donnie” -> 结果为:5 -> 应该是 1,5 -> 为什么遗漏了 1?
搜索:“星期三” -> 结果为:无 -> 应该是 2 -> 为什么遗漏了 2?
结果非常不一致。如果有人可以提供帮助,我将不胜感激。谢谢!
最佳答案
尝试以下:-
$t=mysql_query("SELECT * FROM es_sermons WHERE searchTags like '%$in%' OR serviceName like '%$in%'"); // % sign on both side of the search word
关于php - mySQL 给出不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26333991/