【发布时间】:2011-11-06 04:45:54
【问题描述】:
学习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 循环和查询工作。我之前用过的'create_connection'函数,连接同一个数据库没有任何问题,我有点 难住了,但我认为它可能与mysql_fetch_array部分有关?
我是否使用了正确的方法?还是有更好的方法来解决这个问题?
希望有人能指出我正确的方向!
谢谢
【问题讨论】:
-
'category' 也拼错了,应该是 'category'。
-
另外,只是一个友好的提示,您不应该将该查询放在 __construct() 方法中,因为每次实例化该对象时,它都会运行该查询。相反,您可以将其添加到新方法中,例如
loadImages()。 -
哦,还有一点需要注意,在私有成员变量和方法前加下划线的做法是旧的 PHP 4.x 倒退,您应该尝试训练自己不要在以后的项目中这样做。跨度>
标签: php