我正在开发一个小型PHP程序,该程序存储/检索来自MySQL数据库的信息,并且在显示图像时遇到了障碍。我可以显示一个图像,我可以看到阵列中返回的所有图像,但不知道从那里去哪里。一些背景信息:
我的数据库架构非常简单,我用于图像的表名为img_data,包含以下内容:
请查看以下相关代码段:
<?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;}
?>