数据表“Product”的结构和数据:
include_once('conn.php');
$result = mysql_query("SELECT p_class FROM Product group by p_class limit 40");//第一查询,已经能成功获得数据
 mysql_data_seek($result, 0);
    while ($row=mysql_fetch_row($result))
    {
      for ($i=0; $i<mysql_num_fields($result); $i++ )
      {
       $tmp=$row[$i]; //把查询结果赋值为新变量:$tmp
       echo $tmp;//这里已经可以在web段显示正确的字段内容       $result2 = mysql_query("SELECT * FROM Product where p_class=$tmp limit 0,4");//开始嵌套查询
       while ($row=mysql_fetch_row($result2))
{    
            echo $row['pic'];     //这里查不到数据
            echo $row['p_class']; //同上
            echo $row['p_name'];  //同上
        }
      } 
    }   
mysql_free_result($result);
mysql_free_result($result2);
mysql_close($conn);
以上代码,循环次数已经正确,第一查询也是正确的,就是第二查询没数据。

解决方案 »

  1.   

    本帖最后由 PhpNewnew 于 2012-07-20 23:35:12 编辑
      

  2.   

    在另外一帖找到解决方法。第二个mysql_fetch_row函数,改用mysql_fetch_assoc即可
      

  3.   

    这个跟你刚的问题是一样的
    mysql_fetch_row
    需要修改成 mysql_fetch_assoc()一般 我们都返回关联数组
      

  4.   


    我刚查了一些这两个函数的区别,没看太明白。
    就我这个例子来说,外查询中的mysql_fetch_row需要改成mysql_fetch_assoc函数吗?或者说,你的意思是不是说,一般都只推荐mysql_fetch_assoc,而不用mysql_fetch_row?
      

  5.   

    你这个使用的是
    关联数组
    echo $row['pic'];     //这里查不到数据
                echo $row['p_class']; //同上
                echo $row['p_name'];  //同上所以你得返回关联数组 才能对上号嘛如果你不是很明白可以将返回结果print_r 看看结构就知道了。一般返回的都是关联数组,这样比较容易写代码.倒不是说只推荐,这个要看实际情况,大多数时候我们都是使用关联数组要多些.当然你也可以使用mysql_fetch_array这样返回了两种格式....