当图像路径作为String返回时,图像不显示,其中包含变量

时间:2011-11-18 18:17:56

标签: php

我在显示从数据库中查询过的图像时遇到问题。循环查询结果中的数组并提取图像名称,然后传递给也包含图像路径的变量。但是,当变量包含在输出中时,会显示撕裂的图像图标(无图像)。

代码:

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替换图像变量,这也不起作用:

 $full_path = $path . $row['image_path'];

$row是正确的,因为当我为var-dump执行$row['image_path']时,我会得到以下内容:

string(11) "image1.jpeg" string(11) "image2.jpeg" string(11) .....

我以前在数据库中保存了完整的图像路径,当使用完整的图像路径时,图像显示正确。后来我决定只将图像名称存储在数据库中,因为路径可能在将来发生变化,因此设计更改产生了这个问题。

3 个答案:

答案 0 :(得分:3)

while($row = mysqli_fetch_array($result)) {
     $path = '../images/thumbs/'.$row['image_path'];
     //var_dump($path);
     echo '<li><img src="../images/thumbs/'.$path.'"/></li>';
}

$ path已经包含“../ images/thumbs/”,但是在回显该行时再次添加它。

答案 1 :(得分:1)

你的回声上有两次路径。

您的代码应该是这样的:

while($row = mysqli_fetch_array($result)) {
    $path = '../images/thumbs/'.$row['image_path'];
    //var_dump($path);
    echo '<li><img src="$path"/></li>';
}

如果不起作用,请尝试复制var_dump结果并粘贴到浏览器中以检查路径是否正确。

答案 2 :(得分:1)

../images/thumbs/正在回应两次。试试这个:

echo '<li><img src="'.$path.'"/></li>';