认真排版了一下HTML,然后慢慢填空,总算把之前发了两个帖子问关于嵌套循环查询的问题解决了。但是,新问题出现,语法写得不正确,标注出来了,麻烦大家指教一下:
<?php
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++ )
      {
?>
<table border="1">
  <tr>
    <td><?php echo "$row[$i]";?></td>
    <td>more</td>
  </tr>
  <tr>
    <td colspan="2">********</td>
  </tr>
</table>    
<table border="1">
  <tr>
<?php
$result2 = mysql_query("SELECT * FROM Product where p_class=$row[$i] limit 0,4");
   while ($row=mysql_fetch_row($result2))
{    
?>  
    <td>
    <table border="1">
            <tr><td>
                   <img src=<?php echo $row['pic'];?> />//这里报错,说写法不对
            </td></tr>
            <tr><td>
                   <?php echo $row['p_class'];?>//这里报错,说写法不对
            </td></tr>
            <tr><td>
                   <?php echo $row['p_name'];?>//这里报错,说写法不对
            </td></tr>
        </table>
          <br />
    </td> 
<?php
}
?>
  </tr>
</table>
<?php
      } 
    }   
mysql_free_result($result);
mysql_free_result($result2);
mysql_close($conn);
?>
多谢!

解决方案 »

  1.   

    关于PHP的书写约定,应该看啥书去恶补一下呢?
      

  2.   

    Notice: Undefined index: pic in D:\setup\xampp\htdocs\test.php on line 31
    Notice: Undefined index: pic in D:\setup\xampp\htdocs\test.php on line 32
    Notice: Undefined index: pic in D:\setup\xampp\htdocs\test.php on line 33=====这三行分别对应上文PHP代码中的三行。        <table border="1">
                <tr><td>
                       <img src=<?php echo $row['pic'];?> />//这里报错,说写法不对
                </td></tr>
                <tr><td>
                       <?php echo $row['p_class'];?>//这里报错,说写法不对
                </td></tr>
                <tr><td>
                       <?php echo $row['p_name'];?>//这里报错,说写法不对
                </td></tr>
            </table>
      

  3.   

    Notice: Undefined index: pic
    这是一个提示,告诉你数组的一个键 pic 没有定义,也就是没有 $row['pic']。
    再直白一点,就是你数据库的 Product 表中没有 pic 这个列
      

  4.   


    不能啊,我查了,表product中确实有这三个列。难道不是写法错了?Notice: Undefined index: pic in D:\setup\xampp\htdocs\test.php on line X
    Notice: Undefined index: p_class in D:\setup\xampp\htdocs\test.php on line X
    Notice: Undefined index: p_name in D:\setup\xampp\htdocs\test.php on line X
      

  5.   

    老问题 前面加 isset 判断
      

  6.   


    明白,内值为空时就报错。但是我查了,该表内,确实是有值的。P_CLASS字段在WEB上已经能带出来了。不知道是不是下面这句写错了,导致后面无值的呢:
    $result2 = mysql_query("SELECT * FROM Product where p_class=$row[$i] limit 0,4");where p_class=$row[$i]//这句下的条件,应该有问题,但是我不知道p_class= 后面应该怎么改写,能否麻烦您指点一番?
      

  7.   

    "SELECT * FROM product WHERE p_class='{$row['$i']}' limit 0,4"
      

  8.   


    不行,还是带不出值来,报错:Notice: Undefined index: $i in D:\setup\xampp\htdocs\test.php on line 2525行的内容是:$result2 = mysql_query("SELECT * FROM Product where p_class='{$row['$i']}' limit 0,4");我在想,是不是应该联系上文中用于写标题的这句:<?php echo "$row[$i]"; ?>,把"$row[$i]"赋值给一个变量,供后面的where语句去查询。但是我试了几次写法,都不正确。
      

  9.   

    错了不好意思 没留意你是个变量i
    "SELECT * FROM Product where p_class='{$row[$i]}' limit 0,4"
    这样可以吗?如果还有什么异常提示的话 输出这个SQL
    echo "SELECT * FROM Product where p_class='{$row[$i]}' limit 0,4"
      

  10.   


    改了还是不行,我打印出来那句SQL如下,已经是正确的了,可是为啥带不出来数据呢?SELECT * FROM Product where p_class='111' limit 0,4 
      

  11.   

    在PHPMYADMIN后台执行打印出来的SQL语句,是可以查出来数据的,
    结果如下:莫非是后面的ROW()函数出错了
      

  12.   

    我忘记了 mysql_fetch_row()函数返回的数字数组!
    你可以换用 mysql_fetch_assoc(); 他将返回一个关联数组,也就时键名为列名的数组
      

  13.   


    牛!谢谢我把被嵌套的那个mysql_fetch_row改成mysql_fetch_assoc,就搞定了!这两个函数的区别是什么呢?