本帖最后由 pxy22335 于 2011-06-04 14:41:48 编辑

解决方案 »

  1.   

    //SQL语句有问题。
    $xx=mysql_query("SELECT * FROM wz_refback_paihang WHERE reftime=".date("Y-m")." AND username=".$result['username']."");
      

  2.   


    我刚写错了.本来就是有 加 and 的.但就是报错.郁闷
      

  3.   

    那你把错误信息发出来啊。。可以肯定不是mysql_num_rows()的错误,而是mysql_query()语句出错。
    $xx=mysql_query("SELECT * FROM wz_refback_paihang WHERE reftime=".date("Y-m")." username=".$result['username']."") or die(mysql_error()); //看看错误信息
      

  4.   

    " ... WHERE reftime='".date("Y-m")."' AND username='".$result['username']."'"引号的问题
      

  5.   

    是不是很不简单,直接改成$xx=mysql_query("SELECT * FROM wz_refback_paihang") or die(mysql_error()); //就知道是哪里出错了理论上这样一改肯定mysql_num_rows不会报错
      

  6.   

    为什么不直接
    $xx=mysql_query("SELECT * FROM wz_refback_paihang WHERE reftime=‘date("Y-m")’ and username=’$result['username']‘);//这样语法既容易看得懂,又不容易出错
      

  7.   

    错误信息:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\APMServ5.2.6\www\htdocs\new\manage\fly.php on line 269
      

  8.   

    首先要确保你的wz_refback_paihang表中reftime字段的格式是“年-月”例如2011-06
    或者数据类型是日期格式,还得确保有wz_refback_paihang表里有存在2011-06接下来也不研究语法了,直接声明一个了变量算了$riqi=date("Y-m");第二你应该echo $result['username'];,看是否有数据输出,并且这个数据在你wz_refback_paihang表中存在 
    <?php
    $riqi=date("Y-m");//直接声明一个日期变量
    $reftime="".date("Y-m")."";   
    $xx=mysql_query("SELECT * FROM wz_refback_paihang WHERE reftime='$riqi' username='$result['username']'");//查询是否存在此项目当月的数据
       if(mysql_num_rows($xx)<1){
           //写入每月数据
           $sql="insert into wz_refback_paihang (username,refamount,reftime) values ('$phusername','$refbackamount','$reftime')";
        }else{
           $sql="update wz_refback_paihang set refamount=refamount+".$refbackamount." WHERE username='$phusername' and reftime=$reftime";        
           //存在则累加。
        }   
        //echo $sql;
        mysql_query($sql);
    ?>
    如果你确保你的日期2011-06与username都在库中有存在的话,肯定不会再提示mysql_num_rows问题