如何在页面上显示来自MySQL的多个图像文件名

时间:2015-07-08 23:06:01

标签: php mysql image pdo

我正在开发一个小型PHP程序,该程序存储/检索来自MySQL数据库的信息,并且在显示图像时遇到了障碍。我可以显示一个图像,我可以看到阵列中返回的所有图像,但不知道从那里去哪里。一些背景信息:

我的数据库架构非常简单,我用于图像的表名为img_data,包含以下内容:

  • ID(主要)
  • serialnum(保存图像项目的序列 属于)
  • file_name
  • FILE_SIZE
  • FILE_TYPE

请查看以下相关代码段:

     <?php
 $file_path = "http://localhost/test/image_uploads/$serial/";
 $sql= "SELECT img_data.file_name FROM img_data WHERE serialnum=:serial";
 $query = $DB->prepare( $sql );
 $query->bindParam(':serial', $serial, PDO::PARAM_STR);
 $query->execute();
  $results = $query->fetchAll();
  ?>
   <?php foreach( $results as $row )
    $gimmeNewVal = str_replace(' ', '%20',$row['file_name']);
  $src=$file_path.$gimmeNewVal;
   $gimmeUrl = "<img src=".$src.">";
   echo $gimmeUrl;
   ?>

此代码将属于输入的序列的每个图像的文件名拉入搜索表单,将其转换为正确的URL并在页面上显示第1个结果的图片。我不喜欢这样做只是为了1图像,而是查询返回的所有图像。我该如何处理这个问题?

现在,以下是使用@paul建议编辑的固定和工作代码,尽管我在urlencode()上使用了rawurlencode()。

 <?php
 $file_path = "http://localhost/test/image_uploads/$serial/";
 $sql= "SELECT img_data.file_name FROM img_data WHERE serialnum=:serial";
 $query = $DB->prepare( $sql );
 $query->bindParam(':serial', $serial, PDO::PARAM_STR);
 $query->execute();
  $results = $query->fetchAll();
  ?>
   <?php foreach( $results as $row ){
    $gimmeNewVal = rawurlencode($row['file_name']);
  $src=$file_path.$gimmeNewVal;
   $gimmeUrl = "<img src=".$src.">";
   echo $gimmeUrl;}
   ?>

0 个答案:

没有答案