Php 显示MySQL中的多个图像

Php 显示MySQL中的多个图像,php,mysql,Php,Mysql,我必须在我的网站上显示3张图片,其中figcaption上传到mysql数据库(id_user(int)、图片(longblob)、文本(text)。我为一张图片制作了3张图片,但我不知道如何显示多张图片: $sql = "SELECT image, text FROM images WHERE id_user=?"; $stmt = mysqli_stmt_init($db_con); if (!mysqli_stmt_prepare($stmt, $sql)){

我必须在我的网站上显示3张图片,其中figcaption上传到mysql数据库(id_user(int)、图片(longblob)、文本(text)。我为一张图片制作了3张图片,但我不知道如何显示多张图片:

 $sql = "SELECT image, text FROM images WHERE id_user=?";
    $stmt = mysqli_stmt_init($db_con);
    if (!mysqli_stmt_prepare($stmt, $sql)){
     alerts('SERVER_ERROR');
    }
     else {
      mysqli_stmt_bind_param($stmt,"i", $_SESSION['id']);
      mysqli_stmt_execute($stmt);
      $result= mysqli_stmt_get_result($stmt);


 $result=mysqli_fetch_array($result);
  echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
    $text1 = $row['text']; // doesn't work

 }
$sql=“从id_user=?”的图像中选择图像、文本”;
$stmt=mysqli\u stmt\u init($db\u con);
如果(!mysqli_stmt_prepare($stmt,$sql)){
警报(“服务器错误”);
}
否则{
mysqli_stmt_bind_param($stmt,“i”,$_SESSION['id']);
mysqli_stmt_execute($stmt);
$result=mysqli\u stmt\u get\u result($stmt);
$result=mysqli\u fetch\u数组($result);
回声';
$text1=$row['text'];//不起作用
}
它适用于一个没有figcaption(文本)的图像,但对于同一个id_用户,我还有两个,我想像这样显示它:

<figure> image1 </figure> <figcaption> <?php if(!empty($text1)) { echo $text1;} ?></figcaption>
<figure> image2 </figure> fig text2
<figure> image3 </figure> fig text3
image1
图2图2
图3图3
如何改变它? 另外,我知道我不应该将img上传到数据库,但它只有3个图像。请帮助我修复它。

使用mysqli\u fetch\u all()获取多行

$result=mysqli_fetch_all($result);
foreach($result as $row){
  echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'"/>';
}
$result=mysqli\u fetch\u all($result);
foreach($结果为$行){
回声';
}
使用mysqli\u fetch\u all()获取多行

$result=mysqli_fetch_all($result);
foreach($result as $row){
  echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'"/>';
}
$result=mysqli\u fetch\u all($result);
foreach($结果为$行){
回声';
}
while($row=mysqli\u fetch\u数组($result)){
回声';
回显“”.$row['description']。

”; }
问题解决了!

while($row=mysqli\u fetch\u数组($result)){
回声';
回显“”.$row['description']。

”; }

问题解决了!

注意:
mysqli
的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的
mysql\u查询接口混淆。在您对过程式风格投入过多之前,值得切换。例如:
$db=new mysqli(…)
$db->prepare(“…”)
过程接口是PHP 4时代的产物,当时引入了
mysqli
API,理想情况下不应在新代码中使用。注意:将图像作为base64内联数据嵌入HTML不是很有效。这些图像需要每次发送到客户端,并且不能缓存。最好将URL发送到客户端可以缓存的源代码,或在必要时推送到CDN。注意:
mysqli
的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的
mysql\u query
接口混淆。在您对过程风格投入过多之前,值得切换。示例:
$db=newmysqli(…)
$db->prepare(“…”)
过程接口是PHP 4时代的产物,当时引入了
mysqli
API,理想情况下不应在新代码中使用。注意:将图像作为base64内联数据嵌入HTML不是很有效。这些图像需要每次发送到客户端,并且不能缓存。最好将URL发送到客户端可以缓存的源,或者在必要时推送到CDN。好的,但是现在如何获取image1 image2和image3?u回显所有内容我缺少一些信息。数据库中每个图像都有一行是对的吗?在这种情况下,您可以使用mysqli_fetch_all()获取所有行。foreach循环将显示所有行(及其图片).或者是否有更多的字段在上面列出(图像1、图像2等)我有像:id/user\u id/image/text这样的列,所以我实际上有3个像:1/10/img1/description1 2/10/img2/description2 3/10/img3/description3这样的用户的图像,我想用3个不同的图形来显示它,但是我在用户id=10的地方做,好了,但是现在如何获得image1 image2和image3?你回显了所有的东西,我丢失了一些信息。是不是是否数据库中每个图像都有一行?在这种情况下,您可以使用mysqli_fetch_all()获取所有行。foreach循环将显示所有行(及其图片)。或者是否有更多的字段(image1、image2,…)?我有像:id/user\u id/image/text这样的列,所以我实际上有3个像:1/10/img1/description1 2/10/img2/description2 3/10/img3/description3这样的用户的图像,我想用3个不同的图形显示它,但我在user\u id=10的地方做