我想在表格中显示来自数据库的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>
答案 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>