[英]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.