php里mysql_fetch_array()没有返回值的人问题
代码<formaction=""method="get"><inputtype="text"name="key"value=""><inputtype="submit"n...
代码
<form action="" method="get">
<input type="text" name="key" value="">
<input type="submit" name="sub" vlaue="搜索">
<select name="search" size="1">
<option value="all">全站</option>
<option value="source">资源</option>
<option value="news">新闻</option>
<option value="bbs">论坛话题</option>
</select>
</form>
<?php
//include("conntest.php");
include("connbbs.php");
if($_GET['key'])
{
$key=$_GET['key'];
$sql="select * from `topic` where `title` like '%$key%'";
$query=mysql_query($sql)or die("aa");
// if($query){echo"a";}
$replace=mysql_fetch_array($query);
if(empty($replace)){echo"未找到相关结果";}
?>
if($query){echo"a";}这句没有注释掉的时候会输出a,说明sql语句应该是正确执行了的,我检索数据库里已有的项却总是现实“未找到相关结果”
数据库的编码是utf8-bin
这边连接数据库的时候写的是set names 'utf8'
不管是英文中文都检索不出来
而且title的类型我也已经设置为varchar了
不好意思我,我只有8个积分了···要是还有会追加的··· 展开
<form action="" method="get">
<input type="text" name="key" value="">
<input type="submit" name="sub" vlaue="搜索">
<select name="search" size="1">
<option value="all">全站</option>
<option value="source">资源</option>
<option value="news">新闻</option>
<option value="bbs">论坛话题</option>
</select>
</form>
<?php
//include("conntest.php");
include("connbbs.php");
if($_GET['key'])
{
$key=$_GET['key'];
$sql="select * from `topic` where `title` like '%$key%'";
$query=mysql_query($sql)or die("aa");
// if($query){echo"a";}
$replace=mysql_fetch_array($query);
if(empty($replace)){echo"未找到相关结果";}
?>
if($query){echo"a";}这句没有注释掉的时候会输出a,说明sql语句应该是正确执行了的,我检索数据库里已有的项却总是现实“未找到相关结果”
数据库的编码是utf8-bin
这边连接数据库的时候写的是set names 'utf8'
不管是英文中文都检索不出来
而且title的类型我也已经设置为varchar了
不好意思我,我只有8个积分了···要是还有会追加的··· 展开
7个回答
展开全部
首先你要确定,这句SQL执行后是有值的
$sql="select * from `topic` where `title` like '%$key%'";
把它打印出来,去数据库中查查,看看是否真正的找到值了
$sql="select * from `topic` where `title` like '%$key%'";
把它打印出来,去数据库中查查,看看是否真正的找到值了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$replace=mysql_fetch_array($query);
if(empty($replace)){echo"未找到相关结果";}
改这段看看
if($query){
while( $replace=mysql_fetch_array($query) ){
var_dump($replace);
}
}else{
echo"未找到相关结果";
}
if(empty($replace)){echo"未找到相关结果";}
改这段看看
if($query){
while( $replace=mysql_fetch_array($query) ){
var_dump($replace);
}
}else{
echo"未找到相关结果";
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
布尔值NULL,FALSE,0“,表示是假的,
请求mysql_query SELECT,SHOW,EXPLAIN或DESCRIBE语句返回一个资源标识符,打印出类似的”资源ID#3,“一个字符串,如此的真实。
资源ID#3“是像征,将你想要的数据进行操作,功能操作例如:mysql_fetch_array(套),他提出的从数据库中调结果把函数作为参数。
请求mysql_query SELECT,SHOW,EXPLAIN或DESCRIBE语句返回一个资源标识符,打印出类似的”资源ID#3,“一个字符串,如此的真实。
资源ID#3“是像征,将你想要的数据进行操作,功能操作例如:mysql_fetch_array(套),他提出的从数据库中调结果把函数作为参数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<select name="search" size="1">
<option value="all">全站</option>
<option value="source">资源</option>
<option value="news">新闻</option>
<option value="bbs">论坛话题</option>
</select>
一般建议全站的话value设为'',当然你设成all也没问题,但是php部分你没有做判断哦亲
$key = $_GET['key'];
建议修改为
$key = trim($_GET['key']);
if (empty($key)) {
$sql = "select * from `topic`";
} else {
$sql = "select * from `topic` where title like '%{$key}%';
}
另外我觉得你的关键字应该处理的,你确定topic表的title字段的值包含关键字'source', 'news'这种东西吗?
<option value="all">全站</option>
<option value="source">资源</option>
<option value="news">新闻</option>
<option value="bbs">论坛话题</option>
</select>
一般建议全站的话value设为'',当然你设成all也没问题,但是php部分你没有做判断哦亲
$key = $_GET['key'];
建议修改为
$key = trim($_GET['key']);
if (empty($key)) {
$sql = "select * from `topic`";
} else {
$sql = "select * from `topic` where title like '%{$key}%';
}
另外我觉得你的关键字应该处理的,你确定topic表的title字段的值包含关键字'source', 'news'这种东西吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$sql="select * from `topic` where title like '%$key%'";
字段名上不用加单引号的吧
字段名上不用加单引号的吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询