关于php模糊搜索问题,

<?php$conn=@mysql_connect("localhost","root","")ordie("连接错误:".mysql_error());@mysql_s... <?php
$conn=@mysql_connect("localhost","root","") or die ("连接错误:".mysql_error());
@mysql_select_db("news_php100",$conn);
@mysql_query("set names 'GBK'");
if($_POST['Submit']){
$arr=trim($_POST['gjz']);
$str=explode(" ",$arr);
if($str[1]){
$sql="select * from p_newsbase where title like '%$str[0]%' or title like '%$str[1]%' ";
}else{
$sql="select * from p_newsbase where title like '%$str[0]%' ";
}
$query=mysql_query($sql);
if($query){
while($rows=mysql_fetch_array($query)){
$rows['title']=str_replace($str[0],"<b style='color:#FF0000'>".$str[0]."</b>",$rows['title']);
$rows['title']=str_replace($str[1],"<b style='color:#FF0000'>".$str[1]."</b>",$rows['title']);
echo $rows['title']."<br>" ;

}
}else{
echo "无该数据";
}
}

?>
<form action="" method="post">
关键字:<input type="text" name="gjz" >
<input type="submit" name="Submit" value="全站搜索">

</form>

比如搜索php关键字,数据库含有php关键字的内容,并搜索出来。当搜索关键字不存在时,为何不提示 无该数据 呢,理论上应该可以的啊,怎么调试都不行,往高手给于帮助谢谢!
展开
 我来答
jiangxibaiyi
推荐于2016-01-08 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14411

向TA提问 私信TA
展开全部
if($query){
只是判断sql语句是否执行成功,而不是判断是不是有数据
只要你的sql语句语法正确,对应的数据表和数据字段都正确,那么
无论你数据库有没有数据记录存在,mysql_query()都是真,那么
if ( $query ) {
永远都成立

else
永远都不会执行,
那么,他怎么会输出 无数据呢???

个人建议是这样改一下,判断sql语句执行是否成功,并且同时判断sql返回的数据源相应的行数,没有数据就是0行,有数据就返回有多少行,php中,0为假,大于0的数都为真,根据这个推论,那么,这样改一下
if ( $query && mysql_num_rows( $query ) ) {
追问
嗯,非常感谢您,又涨见识了!恍然大悟问题解决了
wscsq789
2013-05-11 · 超过13用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:38.3万
展开全部
你确定没有输出“无该数据”时候要搜索的关键字有数据存在数据库中?
更多追问追答
追问
嗯是的,我确定,包括关键加亮,都显示正常。当搜索的关键字数据库中不存在时,不能提示
追答
把这个echo $str[1];放到if前输出看下是什么,可能是你这个地方出问题了$str=explode(" ",$arr);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式