使用源自phpmyadmin(MySQL)的PHP将图像显示为图像库



我正在使用PHP、HTML和MySQL来构建一个网站。

因此,我的目标是为我的网页制作一个图像库,每行只能显示3个图像。

但我的代码似乎是错误的,我不知道该在哪里进行更正。

-(这是我的代码:

$query = mysql_query("SELECT DISTINCT * FROM products WHERE catID = 11 ORDER BY typeID ASC"); 
echo "<table>";
while ($row = mysql_fetch_assoc($query)) 
{
echo "<tr>";
for ($c = 0; $c < 3; $c += 1){
echo "<td>";
echo    '<img src="data:image/jpg;base64,'.base64_encode($row['productImg'] ).'" width="300" height="200" alt=""
/>';
echo    "<br>";
echo "<b>";
echo    $row['productName'];
echo "</b>";
echo    "<br>";
// More detail button set up
?><a href="show.php?productID=<?php echo $row["productID"]; ?>">More Detail <i class="fa fa-arrow-circle-o-right"></i></a> <?php

echo "</td>";
}
echo "</tr>";
}
echo "</table>";

-)结果如下:错误结果图像

结果并不是我所期望的,因为在1行中显示了3个相同的图像。我想要的是在每个屏幕上显示3个不同的图像一行我不知道我哪里做错了。

结果不是我所期望的,因为在1行中显示了3个相同的图像。

这是因为for循环,您将在同一图像中循环三次。相反,使用计数器变量$counter来跟踪迭代次数,并每行显示三个不同的图像。

<?php
$query = mysql_query("SELECT DISTINCT * FROM products WHERE catID = 11 ORDER BY typeID ASC"); 
if(mysql_num_rows($query)){
$counter = 0;
echo "<table><tr>";
while ($row = mysql_fetch_assoc($query)) {
if($counter != 0 && $counter % 3 == 0){
echo "</tr><tr>";
}
echo "<td>";
echo '<img src="data:image/jpg;base64,'.base64_encode($row['productImg'] ).'" width="300" height="200" alt=""/>';
echo "<br>";
echo "<b>";
echo $row['productName'];
echo "</b>";
echo "<br>";
// More detail button set up
?>
<a href="show.php?productID=<?php echo $row["productID"]; ?>">More Detail <i class="fa fa-arrow-circle-o-right"></i></a> 
<?php
echo "</td>";
++$counter;
}
echo "</tr></table>";
}
?>

旁注:不要使用mysql_*函数,它们从PHP 5.5开始就被弃用,并在PHP 7.0中被完全删除。请改用mysqlipdo。这就是为什么不应该使用mysql_*函数。

最新更新