我正在尝试在表格中进行图像预览,只是为了检查提交的文件。该表不能超过3个cols,并且行和cels的数量是可变的,因为我跳过DB中的“未找到”图像。 我做了下面的代码,但是我自己无法解决这个问题。该表显示了行的相同图像,并为下一个图像跳过了2个结果。
<?php
$dados = mysql_fetch_array (mysql_query("SELECT id,placa,usuario FROM dados WHERE id='".$_SESSION['novaOS']."'"));
$itens = mysql_result (mysql_query("SELECT itens_acessorios FROM vist_aval WHERE idp='".$_SESSION['novaOS']."'"),0);
$sqlFotos = "SELECT * FROM imagens WHERE idp='".$_SESSION['novaOS']."'";
$qrFotos = mysql_query($sqlFotos) or die();
$rowFotos = mysql_fetch_array($qrFotos) or die();
?>
(...)
<div>
<table>
<?php
$dir_img = "../uploads/fotos/";
for($f=2;$f<=33;){
$foto = $rowFotos[$f];
$td = '<td><img src="'.$dir_img.''.$foto.'" style="margin:0;width:100%;height:auto"></td>';
$tr = '<tr id="gridpreview"></tr>';
if ($foto != false){
for ($r=0;$r<=3;$r++){
if ($r>0){
echo $td;
$f++;
}
else{
echo $tr;
}
}
}
}
?>
</table>
</div>
另外,加载时会出现消息“致命错误:第88行C:\ xampp \ htdocs \ app \ Finalizar.php超过30秒的最长执行时间”。第88行引用if ($foto != false)
。
答案 0 :(得分:1)
这不是你如何进行柱状输出。它应该更像是
$col = 0;
echo '<tr>';
while($row = ... fetch row from result ...) {
echo "<td>$row[whatever]</td>";
$col++;
if ($col > 2) {
echo '</tr><tr>';
$col = 0;
}
}
echo '</tr>';
你不需要两个循环,只需要一个循环,它会一直重复,直到数据库中没有剩余结果为止。
答案 1 :(得分:0)
只需注册功能代码:
<table>
<?php
$dir_img = "../uploads/fotos/";
$col=0;
$f=2;
echo "<tr>";
while ($f<=33){
$foto = $rowFotos[$f];
if ($foto != false){
if ($col>2){
echo "</tr><tr>";
$col = 0;
}
else{
echo "<td><img src='".$dir_img."".$foto."' style='margin:0;width:100%;height:auto'></td>";
$col++;
$f++;
}
}
else{
$f++;
}
}
echo '<td>';
?>
</table>