学习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部分?
我使用正确的方法吗?还是有更好的方法来解决这个问题?
希望有人能指出我正确的方向!
由于
答案 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 );
- 你在某处丢失了数据......