我为我的基本网站设置了一个基本的MVC。 有一个类调用(模型)数据库并对其运行查询,它还具有访问视图的视图方法
<?php
class Products {
public function view( $file_name, $data = null )
{
if( is_array($data) ) {
extract($data);
}
include 'application/view/' . $file_name;
}
public function getProducts () {
$stmt = Database::get()->query ('SELECT * FROM retrofootball_products WHERE id>4');
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result;
}
}
然后将其传递给视图并显示此
<?php require 'application/view/template/header.html'; ?>
<div class="product">
<div class="eight columns">
</div>
<div class="eight columns">
<?php echo "$productname ";echo "| Price £$price";?>
</div>
</div>
我希望显示列表中的所有字段,例如第一个字段Manchester City 1999 Playoff Winning Shirt | Price £40
但我的视图只能访问列名$productname
有没有办法循环查询以显示所有产品?我试过返回一个数组但是视图不会让我声明这个。它只允许我通过列名。我已经在一个要点中添加了我的小网站的结构:
答案 0 :(得分:1)
public function getProducts () {
$stmt = Database::get()->query ('SELECT * FROM retrofootball_products WHERE id>4');
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
这将为您提供一个包含所有结果行的数组。然后,在模板中,您可以使用foreach
循环迭代行。
<?php require 'application/view/template/header.html'; ?>
<?php foreach($products as $product) { ?>
<div class="product">
<div class="eight columns"></div>
<div class="eight columns">
<?php echo htmlspecialchars($product['name']) .' | Price £' . $product['price']; ?>
</div>
</div>
<?php } ?>