如何从数据库中获取所有图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从数据库中获取所有图像相关的知识,希望对你有一定的参考价值。

我有一个数据库表,我已经存储了图像名称和StudentId。我正在通过它的学生获取来自CURRENT学生的图像,就像Instagram主页一样,您可以看到所有上传的图像。我没有将图像存储到数据库中,而是将所有图像保存到名为“upload /”的目录中,并且只将图像的名称保存到数据库中。

我目前在我的数据库中有3个图像,具有相同的StudentId。但问题是有时候我只能从中获取一个图像或者没有图像。我尝试了很多代码,但它仍然没有用。我不确定错误在哪里。它是在循环中还是我无法从数据库中获取所有图像。

<?php
session_start();
include 'common.php';
$id = $_SESSION['student'];
$command = "SELECT * FROM UsersImages WHERE StudentId = ".$id;
$stmt = $dbh->prepare($command);
$result = $stmt->execute();
?>
<html>
   <head>
      <meta charset="UTF-8">
      <title>hello</title>
   </head>
<body>
   <nav>
      <ul>
         <li><a href="home.php">Home</a></li>
         <li><a href="profile.php">Upload</a></li>
      </ul>
   </nav>
   <div>
     <?php
     $row = $stmt->fetch();
     $dir = $row['img_name'];
     foreach($dir as $images){
     echo "<img src=". $images." alt='images'>";
     }
     ?>
   </div>
</body>
</html>
答案

只更新你的PHP代码,你只存储图像名称错误的进程所以它将无法正常工作并使用fetch_assoc()来处理你的数组数据

<?php
     $row = $stmt->fetch();
     $dir = $row['img_name']; // this is wrong process
     foreach($dir as $images){
     echo "<img src=". $images." alt='images'>";
     }
     ?>

<?php
$results = $stmt->fetchAll(PDO::FETCH_ASSOC); // get all result using this
foreach ($results as $data)
{
    $images = $data['img_name']; // get image then use it in your code
    echo "<img src=". $images." alt='images'>";
}
?>

试试这个

$results = $stmt->fetch(PDO::FETCH_ASSOC); // get all result using this
    $images = $results['img_name']; // get image then use it in your code
    echo "<img src=". $images." alt='images'>";

有关使用循环选择数据的更多信息

https://www.w3schools.com/php/php_mysql_select.asp

另一答案

请找到完整的答案。

  • 在获取数据时添加PDO :: FETCH_ASSOC
<?php
session_start();
include 'common.php';
$id = $_SESSION['student'];
$command = "SELECT * FROM UsersImages WHERE StudentId = ".$id;
$stmt = $dbh->prepare($command);
$result = $stmt->execute();
?>
<html>
   <head>
      <meta charset="UTF-8">
      <title>hello</title>
   </head>
<body>
   <nav>
      <ul>
         <li><a href="home.php">Home</a></li>
         <li><a href="profile.php">Upload</a></li>
      </ul>
   </nav>
   <div>
     <?php
     $images = $stmt->fetchAll(PDO::FETCH_ASSOC);
     foreach($images as $image){
     echo "<img src=". $image['img_name']." alt='images'>";
     }
     ?>
   </div>
</body>
</html>

希望这可以帮助 !

以上是关于如何从数据库中获取所有图像的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像视图从改造加载的片段传递给子片段?

如何从片段中检索gridview中的图像?

如何在片段中从相机捕获图像,

如何在ios中从手机中获取所有图像

从片段中获取输入数据

如何从设置中获取数据并发送到此片段