繁体   English   中英

使用php在浏览器上显示图像列表

[英]display list of images on the browser using php

我试图在浏览器上显示存储在 mysql 数据库中的 3 个图像,但我发现只显示loop WHILE上第一次迭代的第一个图像。 如何在浏览器中显示 3 个图像?

 <?php $con = mysqli_connect("localhost","root","","othmane") or die(mysqli_error($con)); if($_SERVER['REQUEST_METHOD']=='GET'){ //$id = $_GET['id']; $sql = "SELECT image,image_type FROM images where id between 2 and 6"; $r = mysqli_query($con,$sql) or die(mysqli_error($con));; $result=mysqli_fetch_array($r); header('Content-Type:image/jpeg'); $ss=$result['image_type']; while($row = $r->fetch_assoc()){ if ($ss == 'php') { echo ( $result['image']); } else if ($ss == 'android') { echo base64_decode( $result['image'] ); } } }else{ mysqli_close($con); } ?>

这段代码:

 <?php $con = mysqli_connect("localhost","root","","othmane") or die(mysqli_error($con)); if($_SERVER['REQUEST_METHOD']=='GET'){ //$id = $_GET['id']; $sql = "SELECT image,image_type FROM images where id between 1 and 3"; $r = mysqli_query($con,$sql) or die(mysqli_error($con));; //$result=mysqli_fetch_array($r); $result=var_dump(mysqli_fetch_all($r)); //header('Content-Type:image/jpeg'); while($row = mysqli_fetch_assoc($r)) { var_dump($row) ; } /*while($row = $r->fetch_assoc()){ $ss=$row['image_type']; if ($ss == 'php') { echo ( $row['image']); } else if ($ss == 'android') { echo base64_decode( $row['image'] ); } }*/ } else{ mysqli_close($con); } ?>

这是结果:

在此处输入图片说明

编辑。 正如我已经看过这个问题,你应该能够做到:

<img src="data:image/jpeg;base64,
 <?php echo base64_encode( $image_data ); ?>
" />

显示您的所有图像,所以下面应该工作:

while($row = mysqli_fetch_assoc($r)){
                $ss = $row['image_type'];
                if ($ss == 'php') {
<img src="data:image/jpeg;base64, <?php echo ( $row['image']); ?>" />
                } else if ($ss == 'android') {
<img src="data:image/jpeg;base64, <?php echo base64_decode( $row['image'] ); ?> " />     
                }
            }

当你在做$r->fetch_assoc() (所以只要你的查询得到你的结果,你的 While 循环就会继续),你将数据的一个结果行提取到关联数组中,所以你有你的数据$row变量。 您必须使用该变量来检查您的['image_type']并获取您的['image']

在您的代码中,您的$result['image_type']$result['image']绑定到您使用$result=mysqli_fetch_array($r)获取的第一条记录(如文档所述:mysqli_result::fetch_array -- mysqli_fetch_array — 获取结果行作为关联数组、数值数组或两者)。

if($_SERVER['REQUEST_METHOD']=='GET'){

    $sql = "SELECT image,image_type FROM images where id BETWEEN 2 and 6";

    $r = mysqli_query($con,$sql) or die(mysqli_error($con));

    header("Content-type: image/jpeg");

    while($row = mysqli_fetch_assoc($r)){
        $ss = $row['image_type'];
        if ($ss == 'php') {
                    echo ( $row['image']);
        } else if ($ss == 'android') {
                    echo base64_decode( $row['image'] );      
        }
    }
}else{
    mysqli_close($con);
}

同样,当您使用程序样式时,请一直使用它,如(来自 php.net 的示例):

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

$result = mysqli_query($link, $query);

while ($row = mysqli_fetch_assoc($result)) {
    printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

或者只是使用面向对象的风格:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

$result = $mysqli->query($query);

while ($row = $result->fetch_assoc()) {
    printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

更多信息,这里的例子: mysqli_result::fetch_assoc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM