少了个大括号:
$p = 3; 
$i = 0; 
echo "<table border=0 cellpadding=3 cellspacing=0 width=100%>"; 
while ($row=mysql_fetch_array($result)) { 
if($i == 0) 
echo "<tr>"; 
echo "<td><img src=./pic/img/".$row[img]." width=55 height=50></td>"; 
$i++; 
if($i == $p) { 
echo "</tr>"; 
$i = 0; 
} }
echo "</table>"; 

解决方案 »

  1.   

    你的记录数不是$p整数倍
    这样最后一个</tr>不会被输出
    要在循环结束时补上
    ...

    if($i > 0) {
      for(;$i<$p;$i++)
        echo "<td></td>";
      echo "</tr>";
    }
    echo "</table>";
      

  2.   

    }是我少打了,本来有的我被上了这一段还是不行,始终有一个记录读不出来
    $p = 3; 
    $i = 0; 
    echo "<table border=0 cellpadding=3 cellspacing=0 width=100%>"; 
    while ($row=mysql_fetch_array($result)) { 
    if($i == 0) 
    echo "<tr>"; 
    echo "<td><img src=./pic/img/".$row[img]." width=55 height=50></td>"; 
    $i++; 
    if($i == $p) { 
    echo "</tr>"; 
    $i = 0; 
    } }
    if($i > 0) {
      for(;$i<$p;$i++)
       echo "<td><img src=./pic/img/".$row[img]." width=55 height=50></td>"; 
      echo "</tr>";
    }
    echo "</table>";终始数据库里最后一条记录读不出来
      

  3.   

    if($i>0){}
    里面的程序,对于上面的循环来说,$row为空的时候才会条件为假,退出循环
    而下面,你有用$row[img],不知道还有意义吗?
      

  4.   

    恩,我也知道的,
    但这是 xuzuning(唠叨) 兄给出的建议(是不是我理解错了?)大家帮帮我
      

  5.   

    <?
    $arr=Array(1,2,3,4,5,6,7);
    $len=count($arr);$p = 3; 
    $i = 0; 
    echo "<table border=1 cellpadding=3 cellspacing=0 width=100%>"; 
    for($j=0;$j<$len;$j++){
    if($i == 0) 
    echo "<tr>"; 
    echo "<td>$arr[$j]</td>"; 
    $i++; 
    if($i == $p) { 
    echo "</tr>\n"; 
    $i = 0; 
    } }if($i > 0) {
      for($j++;$i<$p;$i++,$j++)
       echo "<td>dd".$j."</td>"; //注意,此处$arr数组已经结束了
      echo "</tr>";
    }
    echo "</table>";
    ?>
      

  6.   

    这样读取变量是可以但我读取数据库里的数据的时候,每排就会显示出$arr个相同的图片
    每行三张图片的效果是达到了
    但却是相同的图片我水平较差,请大家理解