日期:2014-05-17  浏览次数:20525 次

一些PHP嵌入HTML中语法约定报错的问题
认真排版了一下HTML,然后慢慢填空,总算把之前发了两个帖子问关于嵌套循环查询的问题解决了。

但是,新问题出现,语法写得不正确,标注出来了,麻烦大家指教一下:

PHP code

<?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);
?>



多谢!



------解决方案--------------------
老问题 前面加 isset 判断

探讨

引用:

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


不能啊,我查了,表product中确实有这三个列。

难道不是写法错了?

Notice: Undefined index: ……

------解决方案--------------------
我忘记了 mysql_fetch_row()函数返回的数字数组!
你可以换用 mysql_fetch_assoc(); 他将返回一个关联数组,也就时键名为列名的数组
------解决方案--------------------
养成习惯 查手册
一个返回数组 一个是返回关联数组...
以后你的问题我还是仔细看看代码才行 哈哈哈

探讨

引用:

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


牛!谢谢

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