我的mySQL命令有点问题似乎无法正常工作。我正在构建一个简单的PHP搜索功能,并且需要它来检查两列(相同的表),如果任一列中的某些内容是LIKE它,那么我需要它来输出它。它似乎工作,如果我只是看着一列,但如果我把OR语句,它仍然有效,它似乎并没有每次都提取正确的数据。这有点难以解释,所以我将在下面使用一个例子。
<?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
搜索:&#34;牧师&#34; - &GT;结果是:2,5->应该是2,3,5 - >为什么3被遗漏了?
搜索:&#34; Donnie&#34; - &GT;结果是:5 - >应该是1,5 - >为什么1被遗漏?
搜索:&#34;星期三&#34; - &GT;结果是:无 - &gt;应该是2 - >为什么2被遗漏了?
结果非常不一致。如果有人可以提供帮助,我将非常感激。谢谢!
答案 0 :(得分:2)
请尝试以下方法: -
$t=mysql_query("SELECT * FROM es_sermons WHERE searchTags like '%$in%' OR serviceName like '%$in%'"); // % sign on both side of the search word