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
评分:♂
|
|
.....
狂晕。
原来你的表坏了。。。费了我这么大劲找错误原来是白费~!
郁闷。。。。。 |
|