我在显示从数据库中查询到的图像时遇到问题。遍历查询结果中的数组,提取图像名称,然后将其传递给一个变量,该变量也包含图像路径。但是,当变量包含在输出中时,将显示撕裂的图像图标(无图像)。
代码:
public function loadImages($item) {
$type = $item;
$conn = $this->create_connection('read');
$sql = "SELECT * FROM `items` WHERE catagory='$type'";
$result = $conn->query($sql)or die(mysql_error());
while($row = mysqli_fetch_array($result)) {
$path = '../images/thumbs/'.$row['image_path'];
//var_dump($path);
echo '<li><img src="../images/thumbs/'.$path.'"/></li>';
}当我var_dump $path时,它会显示正确的文件路径:string(28) "../images/thumbs/image1.jpeg",以及另外七个项目,所以我不会丢失数据。我可以确认路径是正确的,当我回显完整的路径和图像名称时,图像显示正确。
echo '<li><img src="../images/thumbs/image1.jpg"/></li>';此外,我还尝试删除$path变量并直接应用$row:
echo '<li><img src="../images/thumbs/'.$row['image_path'].'"/></li>';我认为问题出在两个字符串的连接上,所以我尝试用$full_path替换image变量,这也不起作用:
$full_path = $path . $row['image_path'];$row是正确的,因为当我为$row['image_path']执行var-dump时,我得到了以下结果:
string(11) "image1.jpeg" string(11) "image2.jpeg" string(11) .....我之前在数据库中保存了完整的图像路径,当使用完整的图像路径时,图像可以正确显示。后来我决定只将图像名称存储在数据库中,因为路径将来可能会更改,所以设计更改造成了这个问题。
发布于 2011-11-19 02:21:41
while($row = mysqli_fetch_array($result)) {
$path = '../images/thumbs/'.$row['image_path'];
//var_dump($path);
echo '<li><img src="../images/thumbs/'.$path.'"/></li>';
}图像已经包含了“../ $path /thumbs/”,但是您在回显该行时又添加了它。
发布于 2011-11-19 02:23:03
你的回声上有两次路径。
你的代码应该是这样的:
while($row = mysqli_fetch_array($result)) {
$path = '../images/thumbs/'.$row['image_path'];
//var_dump($path);
echo '<li><img src="$path"/></li>';
}如果不起作用,请尝试复制var_dump结果并将其粘贴到浏览器中,以检查路径是否正确。
发布于 2011-11-19 02:26:10
../images/thumbs/被回应了两次。试试这个:
echo '<li><img src="'.$path.'"/></li>';https://stackoverflow.com/questions/8187079
复制相似问题