不是把,你在mysql下分别执行下两条sql看看.有没有数据出来.不过通常情况下,你下面的哪个写法,效率还高一些。呵呵。

解决方案 »

  1.   


    while($row = mysql_fetch_array($result)) 
    改成:
    while($row = mysql_fetch_array($result,MYSQL_ASSOC)) 指定使用关联索引,试试
      

  2.   

    $result = mysql_query("SELECT * FROM messages"); 加上分号比较保险,呵呵:$result = mysql_query("SELECT * FROM messages;"); 
      

  3.   


    用select * 是可以查询出数据的。
    但是这时候下面这段代码显示不出数据,不信大家可以把帖子的完整代码复制到本机测试一下。while($row = mysql_fetch_array($result)) 

      echo " <tr>"; 
      echo " <td>" . $row['postby'] . " </td>"; 
      echo " <td>" . $row['message'] . " </td>"; 
      echo " </tr>"; 
    } 当用select posty,message...就可以。
      

  4.   

    你可以调试一下的,把mysql_fetch_array这个语句单独运行,把结果放在一个数组,然后print_r一下,看看是什么,是普通的数字数组还是关联数组:
    $row = mysql_fetch_array($result);
    print_r($row);
      

  5.   

    发现是关联数组,按如下做法取不到值:
    while($row = mysql_fetch_array($result)) 

      echo " <tr>"; 
      echo " <td>" . $row['postby'] . " </td>"; 
      echo " <td>" . $row['message'] . " </td>"; 
      echo " </tr>"; 

    但是这样就可以取到值:
    while($row = mysql_fetch_array($result)) 

      echo " <tr>"; 
      echo " <td>" . $row[0] . " </td>"; 
      echo " <td>" . $row[1] . " </td>"; 
      echo " </tr>"; 
    } 奇怪啊。
      

  6.   

    楼主把print_r的结果贴出来,再试一下用
    while($row = mysql_fetch_array($result,MYSQL_ASSOC))
    {
    echo "  <tr>";
    echo "  <td>" . $row[0] . "  </td>";
    echo "  <td>" . $row[1] . "  </td>";
    echo "  </tr>";
    }
      

  7.   

    By using MYSQL_BOTH (default), you'll get an array with both associative and number indices!
    默认的话,是返回数字索引和字段索引的数组.
    就是你用数字和字段做为索引都能得到数据.print_r($row);来查看一下吧!
      

  8.   

    用$row = mysql_fetch_array($result,MYSQL_BOTH)看看能不能出来能出来说明你修改了默认
    <?php 
    $link = mysql_connect("localhost","xxx","xxx") or die();
    mysql_select_db("test");
    $result = mysql_query("SELECT * FROM a"); 
    echo " <table border='1'>
    <tr>
    <th>Firstname </th>
    <th>Lastname </th>
    </tr>"; 
    while($row = mysql_fetch_array($result))
      {
      echo " <tr>";
      echo " <td>" . $row['0'] . " </td>";
      echo " <td>" . $row['1'] . " </td>";
      echo " </tr>";
      //echo " <br />";
      } 
      
    echo " </table>"; 
    ?>
    在我机器上试过,没有问题!楼主可能是配置的问题!print_r出来看看
      

  9.   


    echo " <td>" . $row['0'] . " </td>";
    echo " <td>" . $row['name'] . " </td>";
    同样好用!
      

  10.   

    有什么奇怪的???本来fetch_assoc, fetch_array, fetch_object就是三种返回数据集的方法。分别用关联数组、对象引用等方式获得其中的字段。
      

  11.   


    $newRow = array();
    while($row = mysql_fetch_array($result,MYSQL_ASSOC))
    {
    $newRow[] = $row;
    }