使用从phpmyadmin(mysql)派生的php将图像显示为图像库

643ylb08  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(336)

我正在使用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>";

-)结果是:错误的结果图像
结果不是我所期望的,因为在一行上它显示了3个相同的图像。我想要的是在每行显示3个不同的图像。我不知道我哪里做错了。

sc4hvdpw

sc4hvdpw1#

结果不是我所期望的,因为在一行上它显示了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_* 函数,它们在php5.5中被弃用,在php7.0中被完全删除。使用 mysqli 或者 pdo 相反。这就是为什么你不应该使用 mysql_* 功能。

相关问题