首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » [求助]高手朋友快帮忙:出现下面的问题是怎么回事。  


  作者:guangqiu
  注册时间:2005-06-25
  主题/回复:2/3
  积分:413
  等级:★★☆(五级)
  称号:略有小成

  guangqiu@manager..
  未提供
  www.

 

 发表:2005-06-25 05:48:25 阅读 12207 次 回复 4 次 得分1  |   字号 字色
[求助]高手朋友快帮忙:出现下面的问题是怎么回事。
Warning: mysql_query(): Unable to save result set in E:\cn21site\meetinfo\meetkey.php on line 106

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\cn21site\meetinfo\meetkey.php on line 107

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\cn21site\meetinfo\meetkey.php on line 128




程序如下:

<?
//设定每一页显示的记录数
$pagesize=10;
//取得记录总数,计算总页数用
106行:$res=mysql_query("select count(*) from meet_info where meetkey LIKE '%$meetkey%' and meetyear= '".$year."' and meetmonth >= '".$month."'");
107行 :$myrow = mysql_fetch_array($res);
$numrows=$myrow[0];
//计算总页数
$pages=intval($numrows/$pagesize);
if ($numrows%$pagesize)
$pages++;
//判断页数设置与否,如无则定义为首页
if (!isset($page))
$page=1;
//判断转到页数
if (isset($ys))
if ($ys>$pages)
$page=$pages;
else
$page=$ys;
//计算记录偏移量
$offset=$pagesize*($page-1);
//取记录
$res=mysql_query("select * from meet_info where meetkey LIKE '%$meetkey%' and meetyear='".$year."' and meetmonth >= '".$month."' ORDER BY meetday DESC limit $offset,$pagesize");
//循环显示记录

if ($myrow = mysql_fetch_array($res))



从网上查了可能原因:
1、是否因为106行中的'%$meetkey%'没定义?
如果定义要怎么定义呢?

2、是否是mysql 和php的版本问题?  我们主机上有两个PHP网站,其中一个没有问题,而这个就出以上问题。

哪位朋友赶紧帮忙啊,如果帮我们解决掉这个问题,我们将赠送一年的FTP空间或者主机空间也行。
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-06-26 00:24:04  评分:1 

问题肯定出在 106行:
$res=mysql_query("select count(*) .......);
因为这个地方数据库查询结果未能存储下来,所以引起了后面的几处错误。

由于我这里也没有数据库,没法给你慢慢测试这个SQL语句到底哪里错了。

不过可以给你个建议,你自己调试一下。
这个SQL是一个查询语句,使用了count(*)集群函数来查询所有满足条件的记录的数目。而查询条件有三个,一个是meetyear 一个是meetmonth,另外一个是根据关键字$meetkey模糊查询meetkey。

总体上看这个语句没有很明显的错误。但是不知道你这个程序贴出来的是不是完整的代码。如果是完整的代码,那么是有问题的,变量未初始化的可能是存在的,如果贴出来的只是一部分代码,那就不一定了。

如果你贴出来的是全部代码,那么你的 $meetkey $meetyear等变量确实没有定义,或者说没有初始化。你这个程序很可能是PHP3的程序,而你的服务器又是PHP4以上的版本,如果是这样,肯定会有错误的。原因简单得说来就是PHP3的时候表单传递过来的变量不需要接收,系统会自动注册一个变量。可以直接使用,而在PHP4之后,这种方法默认不再被支持,所以你需要手工接收你的变量。比如:
$meetkey=$_POST["meetkey"];
这样,才把用户输入的内容提交上来并且用$meetkey接收。
所以,如果是这样的话,你把你这个程序中用到的所有从表单接收的变量,都用$_POST[]接收过来,比如:
$meetkey=$_POST["meetkey"];
$meetmonth=$_POST["meetmonth"];
$year=$_POST["year"];
然后你的程序中的变量就可以使用了。


如果经过以上处理,仍然提示错误,可以使用下列方法自己调试一下这个语句:

1、可以在phpmyadmin中执行这个语句,一般如果有错误会给出提示。
2、可以用 
$query="select count(*).....";
echo $query;
$res=mysql_query($query);
这样一来,可以把你构造的sql语句输出出来。因为你的原代码中的语句带着三个变量,而用echo输出出来以后,变量就带入了值,你可以看看这时候带入了值的语句有没有错误。比如是不是有的值为空,或者有的值类型不匹配。
3、可以试着简化查询条件。原来有三个条件,你可以一个一个的简化,现去掉一个meetyear条件,看看有没有错误,如果仍然有错,再去掉一个meetmonth条件...这样测试一下,看看是哪个条件出了问题。

总之,你这个问题最大的可能性就是变量接收问题。所以,你按照上面我提到的方法把变量接收一下,然后再调试一下看看,十有八九会成功!!
 2#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 2#楼 发表于2005-06-26 00:30:11  评分: 

在进一步说的明白点:
在程序中开始位置前面加上这么几行变量接收语句:
<?php
//首先接受用户输入的三个表单的值,存放到三个PHP变量中
$meetkey=$_POST["meetkey"];
$meetmeetmonth=$_POST["meetmonth"];
$meetkey=$_POST["year"];

//当然,上面POST[]里面的字符串是你的表单的名字
//比如<input type=text name=year...>那么名字就是year

............
?>

你就这么改改看看。如果仍然不行。那么你把你的sql语句用echo 输出出来,你会看到类似于这样的一个语句:
select count(*) from meet_info where meetkey LIKE '%测试测试%' and meetyear='2004' and meetmonth>='9'

也就是重点看看上面的三个变量"测试测试",“2004”,“9”有没有顺利传递过去。如果输出出来的语句发现这些变量没有传递成功,那就得好好检查一下你的变量接收语句,以及最好把 "..LIKE '%$meetkey%'"修改成
"...LIKE'%".$meetkey."%' ...."
你上面的写法虽然不能说错,但是毕竟不如我这种写法保险。
 
 3#楼  
 
  回复人:guangqiu
  注册时间:2005-06-25
  主题/回复:2/3
  积分:413
  等级:★★☆(五级)
  称号:略有小成

   
 3#楼 发表于2005-06-27 05:36:49  评分:× 

我查了好久还是没搞定,但运行SQL语句后,发现了127错误。  最后用语句:
 repair table meet_info 
搞定!

不过也非常感谢楼上回复。 

能交个朋友吗? 我的QQ:9055470
 4#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 4#楼 发表于2005-06-27 17:03:26  评分: 

.....
狂晕。
原来你的表坏了。。。费了我这么大劲找错误原来是白费~!
郁闷。。。。。
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.012sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版