2

我想在一个表(2 * 2)中显示来自数据库的 4 个图像,我知道该怎么做。但我也有特殊情况(如果图片少于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>
4

2 回答 2

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>
于 2013-02-24T20:26:26.730 回答
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>
于 2013-02-24T20:34:01.920 回答