我无法从数据库中获取数据,我不断收到同样的错误
注意:未定义的变量:第25行上的文章:\ xampp \ htdocs \ SalesManagementProject \ Views \ articles.php
警告:为第25行的\ xampp \ htdocs \ SalesManagementProject \ Views \ articles.php中的foreach()提供的参数无效
我的循环
<?php
foreach($articles as $art)
{
echo '<tr>
<td>'.$art['Id'].'</td>
<td>'.$art['ref'].'</td>
<td>'.$art['desig'].'</td>
</tr>';
}
?>
模型
<?php
class ArticlesModel
{
public function getArticles()
{
$pdo=new PDO_connect();
$q= $pdo->PDO()->query('SELECT * FROM articles');
return $q->fetchAll();
}
}
?>
控制器
<?php
class ArticlesControllers
{
public function loadArticles()
{
include (dirname(__FILE__).'/../Models/ArticlesModel.php');
$art_table = new ArticlesModel();
$articles = $art_table->getArticles();
include(dirname(__FILE__).'/../Views/articles.php');
}
}
?>
索引
<?php
session_start();
include ('PDO_connect.php');
$p='home';
if (isset($_GET['p']))
{
$p=$_GET['p'];
}
include('Controllers/ArticlesControllers.php');
$arts=new ArticlesControllers();
$arts->loadArticles();
?>
那我必须做什么?
答案 0 :(得分:-1)
简单,在public function loadArticles() {
添加
global $articles;
因为在一个函数内部分配了$ articles,所以需要对它进行全局化以在另一个区域中读取它。
顺便说一句,您应该将$articles
定义为index.php中的数组,以使其正确定义
$articles = array();
BTW将一个命名变量传入/传出类是不是很合适的编程,但我希望你有一个快速的解决方案。
更好的解决方案是使用公共函数return ($articles)
并在index.php中$articles = $arts->loadArticles();