$class_arr=array();
$sql = "select * from `category` order by sort asc, classid desc";
$query = $mysql -> query($sql);
while($row = $mysql -> fetch_array($query)){
echo ($row['classid'].$row['classname'].$row['parentid'].$row['sort']);
$class_arr[] = array($row['classid'],$row['classname'],$row['parentid'],$row['sort']);
}如上echo ($row['classid'].$row['classname'].$row['parentid'].$row['sort']);为什么没有数出预想的内容?
也没有错误提示输出的内容为空,sql语句放在phpmyadmin里正常执行。php是否有方便点的调试工具得知此错误,刚做php几天对此不熟悉,请把我当做小学生看待吧!

解决方案 »

  1.   

    你先echo ($row['classid'].$row['classname'].$row['parentid'].$row['sort']);换成$row[0], $row[1]…先试试,有没有结果
      

  2.   

    $sql = "select * from `category` order by sort asc, classid desc";
    --是不是因为表名两边加了单引号引起的,改为下面的试一下
    $sql = "select * from category order by sort asc, classid desc";
      

  3.   

    这次输出了:
    resource(5) of type (mysql result) 
    是什么意思?mysql结果资源5?
      

  4.   

    把mysql类,fetch_array方法贴出来
      

  5.   

    <?php
    $hostname_conn = "localhost";  //host name or ip
    $database_conn = "mydb";  //database name
    $username_conn = "root";  //mysql root username
    $password_conn = "";  //mysql passwordclass mySql_Class
    {
    function __construct($host, $user, $pass)
    {
      @mysql_connect($host,$user,$pass) or die("Database connection failed!");
    mysql_query("SET NAMES 'utf8'");
      }

    function select_db($db)//connection table
    {
    return @mysql_select_db($db);
    }

    function query($sql)//fecth sql
    {
    return @mysql_query($sql);
    }

    function fetch_array($fetch_array)
    {
    return @mysql_fetch_array($fetch_array, MYSQL_ASSOC);
    }


    function close() //close db

    return @mysql_close();
    }

    function insert($table,$arr) //insert into data
    {
    $sql = $this -> query("INSERT INTO `$table` (`".implode('`,`', array_keys($arr))."`) VALUES('".implode("','", $arr)."')");
    return $sql;
    }
    }$mysql = new mySql_Class($hostname_conn,$username_conn,$password_conn);
    $mysql -> select_db($database_conn);
    ?> 
    mysql类文件如上
      

  6.   

    有,在8楼
    $mysql = new mySql_Class($hostname_conn,$username_conn,$password_conn);
    $mysql -> select_db($database_conn);
      

  7.   

    return @mysql_fetch_array($fetch_array, MYSQL_ASSOC);
    把@去掉看报什么错?
      

  8.   

    http://stackoverflow.com/questions/2331650/mysql-query-returns-an-empty-resultset-even-when-query-is-valid跟你几乎一样的问题,最后有他解决的方案,不过跟你的似乎不一样
    你的代码一行一行,还真看不出问题,水平有限
      

  9.   

    晕死,自己搞定了!!!
    echo ($row['classid'].$row['classname'].$row['parentid'].$row['sort']);
    =>
    echo ($row['CLASSID'].$row['CLASSNAME'].$row['PARENTID'].$row['SORT']);
    字段名换成大写就ok了,为什么?
      

  10.   

    为什么这里的php代码中的字段名要和mysql中的字段名大小写相符合,才可以?
    如何避免这个问题。
      

  11.   

    http://stackoverflow.com/questions/2331650/mysql-query-returns-an-empty-resultset-even-when-query-is-valid跟你几乎一样的问题,最后有他解决的方案,不过跟你的似乎不一样
    你的代码一行一行,还真看不出问题,水平有限
      

  12.   

    //呵呵,就没往这方面想过
    php对变量大小写敏感对函数名不敏感
      

  13.   

    不好意思对mysql不是很熟悉,之前回答错了一个问题,不过还是想再提点建议,把各个字段直接select出来,分别用大写和小写,按你的情况看小写的是不行的,再把这条语句直接拿出来执行,类似查询分析或者toad之类的,如果小写不行,大写可以,那就是DB设置的问题,不是程序的问题了,在网上找一下资料,好像在linux系统下的字段是会区分大小写的
      

  14.   

    windows无所谓,linux,unix就会区分大小写。所以你写的时候要注意大小写,包括文件名,变量名,数据库名,表名,字段名,所有的东西都要大小写一致。
    这样才更能兼容更多的系统
      

  15.   

    在PHP中,变量名是区分大小写的,而函数和类名是不区分大小写的
      

  16.   

    PHP 怎么连接access 数据库?
    邮箱验证谁能帮我写?
      

  17.   

    感谢各位的回答,我的系统是windows的,没想到也会区分大小写。
    $row['classid']里的classid不是变量名或函数名啊,无论如何问题已经解决了。
    感谢大家!结贴