while循环中的表格设计

时间:2013-02-24 20:22:24

标签: php while-loop html-table

我想在表格中显示来自数据库的4张图片(2 * 2)我知道该怎么做。但我也有特殊条件(如果图片少于4张,它会显示默认图片,完全显示4张图片)

我在while循环中管理它。如果有4个图像没有问题,它可以按照我的要求工作,但是当图像较少时(这意味着默认图像将完成4个图像)它不起作用。我无法弄清楚如何做到这一点。

任何帮助?

<table>
<tr>
<?php                               
$todisplay = 4;

$query = mysql_query("select * from Images where Country_ID=$co_id LIMIT 0,4;");

while ($row = mysql_fetch_array($query)) {
$x++;
 echo "<td><img src='".$row['I1_Th'] .  "'/></td>";
 $displayed_number++;
 if ($x % 2==0) {
 echo "</tr><tr>";}
}   

echo str_repeat("<td>
<img src='images/png/defthumb.png'> </td>", $todisplay-$displayed_number);
?>
</tr></table>

2 个答案:

答案 0 :(得分:2)

你离它不远 - 只需创建另一个做同样事情的循环,但改为使用默认图像。此外,$displayed_number似乎与$x保持相同的值,因此我将其删除。

<table>
<tr>
<?php                               
$todisplay = 4;

$query = mysql_query("select * from Images where Country_ID=$co_id LIMIT 0,4;");
$x = 0;

while ($row = mysql_fetch_array($query)) {
$x++;
 echo "<td><img src='".$row['I1_Th'] .  "'/></td>";

 if ($x % 2==0) {
 echo "</tr><tr>";}
}   

while ( $x < $todisplay) {
$x++;
 echo "<td><img src='images/png/defthumb.png'/></td>";
 if ($x % 2==0) {
 echo "</tr><tr>";}
}   
?>
</tr></table>

答案 1 :(得分:1)

不是循环查询返回的行,为什么不循环四次并尝试获取一行呢?

<table>
<tr>
<?php                               
$tablerows = 2;

$query = mysql_query("select * from Images where Country_ID=$co_id LIMIT " + ($tablerows * 2) + ";");

for ($x = 1; $x <= ($tablerows * 2); $x++) {
  if ($row = mysql_fetch_array($query)) {
    echo "<td><img src='".$row['I1_Th'] .  "'/></td>";
  } else {
    echo "<td><img src='images/png/defthumb.png'></td>";
  }
  if ($x % 2==0 && $x != $tablerows * 2) {
    echo "</tr><tr>";}
}
?>
</tr></table>