我想通过用户输入的名称(name),查询数据库后显示对应的介绍(intro)。代码如下: //接受来自HTML页面的参数q,并赋值给变量 $d
$d= $_GET["q"]; //开启mysql连接,名为$conn
$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误"); //打开数据库hoho
mysql_select_db("hoho", $conn);
mysql_query("set names 'utf8'"); //定义以name为关键字进行查询的SQL语句,作为字符串赋值给变量 $sq0。
$sq0="select * from site WHERE name ='$d'"; //执行上面的SQL语句
$qy0=mysql_query($sq0,$conn); //调用系统函数mysql_fetch_array( ) ,将结果数组化以后存储在数组$result中
$result=mysql_fetch_array($qy0); //-----------------------------------------第22行--//输出文字介绍字段中的内容
echo $result['intro'] ;
网页中介绍信息没有显示出来,有以下提示: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wamp\www\n\mid.php on line 22 还有很奇怪的是,在IE下不能显示,而在firefox下有时能显示有时不能。
请问大家是怎么回事,应该如何修改?
谢谢大家!
$d= $_GET["q"]; //开启mysql连接,名为$conn
$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误"); //打开数据库hoho
mysql_select_db("hoho", $conn);
mysql_query("set names 'utf8'"); //定义以name为关键字进行查询的SQL语句,作为字符串赋值给变量 $sq0。
$sq0="select * from site WHERE name ='$d'"; //执行上面的SQL语句
$qy0=mysql_query($sq0,$conn); //调用系统函数mysql_fetch_array( ) ,将结果数组化以后存储在数组$result中
$result=mysql_fetch_array($qy0); //-----------------------------------------第22行--//输出文字介绍字段中的内容
echo $result['intro'] ;
网页中介绍信息没有显示出来,有以下提示: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wamp\www\n\mid.php on line 22 还有很奇怪的是,在IE下不能显示,而在firefox下有时能显示有时不能。
请问大家是怎么回事,应该如何修改?
谢谢大家!
在倒数第二句加上echo $sq0
while($rs6=mysql_fetch_array($result6){
.........................
}
echo $sql;
exit;
再把输出的语句复制下到mysql管理平台上测试下(phpmyadmin或Mysql Administrator)
===>
$qy0=mysql_query($sq0,$conn) or die('查询失败');
但问题仍然存在回复2楼:
echo $sq0; 看到的是 select * from site WHERE name ='昆明' (昆明是输入的地点)回复5楼:
已经试过(上一句),执行正常,可以找到相应的一条记录回复7楼:
回复3,8,9楼:
那样就达不到效果啊,因为结果没有显示出来
把sql在数据库上执行一下,看看是否正常。22行出毛病,编码不一致的可能性也比较大。
都改为utf8,没有报错了,也没有结果
不用怀疑,问题应该是在这句:$qy0=mysql_query($sq0,$conn); $qy0很可能是false所以应该在$result=mysql_fetch_array($qy0); 之前加上判断。可以这样做:
if($qy0=mysql_query($sq0,$conn))
{
#取值
$result = array();
$count = mysql_num_rows($qy0);for($i=0;$i<$count;$i++)
{
$result[]=mysql_fetch_array($qy0);
}
mysql_num_rows
}
在IE下也没有报错,只是无法显示。
我找到了原先firefox下时好时坏的原因:
由于本页面是从home.html链接过来的,而home页面的编码是gbk。故每次链接到查询页面时会和查询页面的utf8冲突,导致无法显示并警告。
谢谢大家,但IE下为什么不能显示呢?