无法通过php数组显示数据库中的图像

时间:2011-11-05 19:41:45

标签: php

学习php!

我有一个sql数据库,其中包含一个名为' images'它存储用户上传的图像路径。我遇到的问题是将图像路径从数据库拉到PHP数组,然后使用路径在屏幕上显示图像作为列表项。但是当我运行页面时,没有显示任何内容。

数据库连接代码:

include('Database.php');

class Images extends Database{

private $_images = array();

public function __construct(){

  $conn = $this->create_connection('read');     
  $sql = "SELECT image_path FROM 'items' WHERE catagory='tshirt'";      
  $result = $conn->query($sql)or die(mysql_error());        
  while($paths = mysql_fetch_array($result)) {      
    $this->_images[] = $paths['catagory'];      
  }         
}

public function getItems() {        

  return $this->_images;   
}

视图代码:

<ul>
<?php
require ('../model/Images.php');
$imageArray = array();
$images = new Images();
$imageArray[] = $images->getItems();
foreach($ImageArray as $value){
        echo '<li><img src="'.$value.'"></li>';
}   
?>
</ul>

我使用phpmyadmin执行了SQL查询,查询正确。此外,我通过手动添加图像路径来测试数据库数据,以测试通过数组循环。

private $_images = array('./images/tshirt1.jpg', etc, etc);

所以我知道foreach循环和查询工作。 &#39; create_connection&#39;我以前用过的函数,连接到同一个数据库没有任何问题,我有点 难倒,但我认为它可能连接到mysql_fetch_array部分?

我使用正确的方法吗?还是有更好的方法来解决这个问题?

希望有人能指出我正确的方向!

由于

2 个答案:

答案 0 :(得分:1)

除了你用'category'填充$ this-&gt; images []之外,一切看起来都不错,但是没有从mysql中选择'category','image_path'是,试试这个:

while($paths = mysql_fetch_array($result)) {        
    //$this->_images[] = $paths['catagory'];
    $this->_images[] = $paths['image_path'];      
}  

答案 1 :(得分:1)

在Digital Precision

建议的更改之上将$imageArray[] = $images->getItems();更改为$imageArray = $images->getItems();

编辑:

$imageArray = $images->getItems();
var_dump( $imageArray );
foreach($imageArray as $value) {
        var_dump( $value );
        echo '<li><img src="'.$value.'"></li>';
}

会找到您丢失数据的位置。我希望它与DB中错误的图像路径无关。

编辑:

var_dump总会显示一些内容...查看“空白页面”的来源以查看正在显示的内容以及转储变量是否为空尝试使用var_dump( $images );应该会显示对象中的内容,如果仍然属性_images是空数组构造函数有问题,可能在WHILE LOOP之前尝试while ($paths = mysql_fetch_array($result, MYSQL_ASSOC))var_dump( $result ); - 你在某处丢失了数据......