关于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关键字的内容,并搜索出来。当搜索关键字不存在时,为何不提示 无该数据 呢,理论上应该可以的啊,怎么调试都不行,往高手给于帮助谢谢! 展开
$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关键字的内容,并搜索出来。当搜索关键字不存在时,为何不提示 无该数据 呢,理论上应该可以的啊,怎么调试都不行,往高手给于帮助谢谢! 展开
展开全部
if($query){
只是判断sql语句是否执行成功,而不是判断是不是有数据
只要你的sql语句语法正确,对应的数据表和数据字段都正确,那么
无论你数据库有没有数据记录存在,mysql_query()都是真,那么
if ( $query ) {
永远都成立
而
else
永远都不会执行,
那么,他怎么会输出 无数据呢???
个人建议是这样改一下,判断sql语句执行是否成功,并且同时判断sql返回的数据源相应的行数,没有数据就是0行,有数据就返回有多少行,php中,0为假,大于0的数都为真,根据这个推论,那么,这样改一下
if ( $query && mysql_num_rows( $query ) ) {
只是判断sql语句是否执行成功,而不是判断是不是有数据
只要你的sql语句语法正确,对应的数据表和数据字段都正确,那么
无论你数据库有没有数据记录存在,mysql_query()都是真,那么
if ( $query ) {
永远都成立
而
else
永远都不会执行,
那么,他怎么会输出 无数据呢???
个人建议是这样改一下,判断sql语句执行是否成功,并且同时判断sql返回的数据源相应的行数,没有数据就是0行,有数据就返回有多少行,php中,0为假,大于0的数都为真,根据这个推论,那么,这样改一下
if ( $query && mysql_num_rows( $query ) ) {
追问
嗯,非常感谢您,又涨见识了!恍然大悟问题解决了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询