我有这个代码以5行显示我的图像但由于某种原因,代码在第一行的末尾添加了一个图像。
此代码是否有错误?如果没有,我该如何更改它以停止在第一行的末尾添加额外的图像。
代码:
$query = mysql_query("SELECT * FROM gallery WHERE gallery_number='$gallery_number'");
echo '<table width="960">';
$i = 0; //first, i set a counter
while($fetch = mysql_fetch_assoc($query)){
//counter is zero then we are start new row
if ($i==0){
echo '<tr>';
}
//here we creating normal cells <td></td>
$image_name = $fetch['image_name'];
$image_location = $fetch['image_location'];
echo '<td>'.'<img src="'.$image_location.'" alt="'.$image_name.'"/>'.'</td>';
//there is a magic - if our counter is greater then 5 we set counter to zero and close tr tag
if ($i>5){
$i=0;
echo '</tr>';
};
$i++; //$i = $i + 1 - counter + 1
}
echo '</table>';
答案 0 :(得分:1)
您使用$i
开始0
计数,因此,对于您的检查,它将返回6个结果。
if ($i>5){
$i=0;
echo '</tr>';
};
那应该是这样的:
if ($i>4){
$i=0;
echo '</tr>';
};
或者您可以将$i
计数器更改为从1
开始,然后重置为1
。
答案 1 :(得分:1)
你没有关闭TR。只有当$ i达到5时才关闭TR,并且您也不会打开新的TR。在浏览器中检查结果(Ctrl-U)。
您的程序应包含以下内容:
if ($i > 5) {
echo("</tr><tr>");
$i = 0;
}
关闭整行并打开一个新行。此外,您应该在循环之前打开TR,并在循环之后关闭。 (高级任务:消除空TR对。)
答案 2 :(得分:0)
由于几个原因,此代码无效。
首先,考虑一下您实际创建<td>
的次数。您可以在$i
处开始计数器0
。然后,您只需在到达6
后重置它。你循环次数太多了。
其次,在增加计数器的位置,您只能创建1 <tr>
。这是因为您将计数器重置为0
。然后立即将其增加到1.这将阻止创建下一个<tr>
。