显示多个来自MySQL的图像

时间:2019-02-19 19:58:13

标签: php mysql

我必须在我的网站上显示3张figcaption图片,这些图片已上传到mysql数据库(id_user(int),image(longblob),text(text)),每张图片我制作了3张图片,但我不知道如何显示超过1张图片:

SELECT 
    [id],hashbytes('MD5', (SELECT [id], [version], [status], [notes],[locked], [timelocked] 
                           FROM (VALUES(NULL)) foo(bar) 
                           FOR xml auto)) AS [Checksum]
FROM 
    tableA AS A

它适用于不带figcaption(文本)的一幅图像,但对于同一id_user,我还有2张图像,我想将其显示为:

 $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

 }

如何更改? PS。我知道我不应该将img上传到数据库,但这只是3张图片。帮我修复它。

2 个答案:

答案 0 :(得分:0)

使用mysqli_fetch_all()获取多行

$result=mysqli_fetch_all($result);
foreach($result as $row){
  echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'"/>';
}

答案 1 :(得分:0)

while ($row = mysqli_fetch_array($result)){

  echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'"/>';
 echo '<p>'.$row['description'].'</p>';
}

问题解决了!