$r=mysql_query("select * from table1 where id > 0",$conn); 
你是不是写反了:$r=mysql_query($conn,"select * from table1 where id > 0"); while ($row=mysql_fetch_array($r,MYSQL_ASSOC))
MYSQL_ASSOC?需要这个么?直接while ($row=mysql_fetch_array($r))不可以么?为什么你的写法和我的不一样了~~~~

解决方案 »

  1.   

    上传到服务器要改用户名和密码
      $conn=mysql_connect("localhost","test","test") or die('联接不成功'); 
    mysql_select_db("test");   //注意分号
    $r=mysql_query("select * from table1 where id > 0",$conn) or die("查询不成功"); 
    if(mysql_num_rows($r)>0){   //如果有记录则执行    while ($row=mysql_fetch_array($r)) 
        { 
             $rows[]=$row['字段']; 
         } 
      

  2.   

    MYSQL_ASSOC,应该是将行返回为管理数组,字段名表示键,而字段内容表示值。楼主说,你是在空间上执行错误,你确定你在数据库的配置上没有问题吗?
    另外我通常是使用mysqli扩展来操作的。mysql_fetch_array是不是php4的写法啊?mysql_fetch_array($query);
      

  3.   

    返回数组为false
    这种情况我遇到过一回,不过是别人说access的.
    建议查看服务器和本地的mysql版本,以及建库语句是否一致.
    while ($row=mysql_fetch_array($r,MYSQL_ASSOC)) 
    问题可能就出在你加的哪个参数MYSQL_ASSOC,其实你直接$row=mysql_fetch_array($r),默认是两种数字索引和字段索引都存在,然后print_r($row)查看服务器是否支持字段名索引.
      

  4.   

    应该没有问题的,MySQL是支持字段索引的,被上传服务器的MySQL没可能那么落后的,MYSQL_ASSOC应该是支持的
      

  5.   

    没有错的,楼主的$conn,显示了资源变量啊!“echo $conn." <br>";//此处打印结果为:Resource id #1 ”这里讲明了连接正常啊
      

  6.   

    那有一个解决办法,让楼主把“while($row=mysql_fetch_array($r,MYSQL_ASSOC)) ”这句话改成“while($row=mysql_fetch_array($r)) ”,看看能不能???LZ:楼主把“while($row=mysql_fetch_array($r,MYSQL_ASSOC)) ”这句话改成“while($row=mysql_fetch_array($r)) ”试一下行不行??
      

  7.   

    既然前面查询的时候,返回false 那么即使去掉fetch的MYSQL_ASSOC参数,也是没用的
    但我还是试一下,有时候,程序是说不明白的,特别是微软的那套。服务器是php5 + mysql 5,具体的版本不记得了,等下去看看
      

  8.   

    mysql 版本是5.0.45
    服务器是Localhost via UNIX socket
    php版本是php 5去掉fetch的MYSQL_ASSOC的参数后,执行结果是一样的
    依然提示Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result 
    查询结果$r依然是false
      

  9.   

    我认为,关键还是查询,为什么返回false
    查询语句简单得不能再简单了,而且通过服务器上的phpmyAdmin执行过查询,没有问题
    难道是select db的问题,可我用mysql_select_db("test",$conn)也试过,结果还是一样或许是php的配置问题,有没有人知道hostmonster的php怎么设置呢我快抓狂了
      

  10.   

    $r=mysql_query("select * from table1 where id > 0",$conn); 
    后加上
    echo mysql_error();
    首先要证明你的查询是否成功.
    然后再决定用mysql_fetch_array来取.
    如果查询已经成功了,换mysql_fetch_row试下,看是什么结果.
    多调试吧.
      

  11.   

    mysql_num_rows($r)这个没有提示错误吗?这个没有错误证明$r是有资源的,即是mysql_query是正常的,那你去掉$conn那些数据库资源变量,试一下行吗?(按道理应该加上也没有问题,楼主试一下吧)
      

  12.   

    楼主说已经返回了资源变量了啊,echo $conn." <br>";//此处打印结果为:Resource id #1 这里表明了
      

  13.   

    谢谢各位热心的朋友,问题找到了,是我的用户对该数据库没有查询权限,更改权限后解决问题前面有个朋友提醒我查看数据库配置,我以为是指mysql的系统设置,搞了好久没有结果最后证明,出现这样的错误,一般是查询不到结果,不是sql语句错误,就是连接错误,或者权限问题。再次感谢,立刻结贴,人人都有分