2016-08-29 4 views
0

Я не могу получить мои данные из базы данных, я получаю ту же ошибку,Warnign в цикле Еогеасп

Примечание: неопределенные переменные: статьи в: \ XAMPP \ HTDOCS \ SalesManagementProject \ Views \ articles.php в строке 25
Предупреждение: Неверный аргумент поставляются для Еогеасп() в: \ XAMPP \ HTDOCS \ SalesManagementProject \ Views \ articles.php на линии 25

мой цикл

<?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

где определяется '$ articles'? найти, что первый – Ghost

+0

какой из них ваша строка 25 уточнить –

+0

строка 25 линия foreach Мирза Обейд –

ответ

-1

Простой, в вашем разделе контроллера после public function loadArticles() { добавить

global $articles; 

Поскольку $ изделия присваивается внутри функции, вам нужно глобальное это прочитать его в другой области.
BTW вы должны определить $articles как массив в index.php, чтобы сделать его правильно определить

$articles = array(); 

BTW пропускании по имени переменной в/из класса не очень правильное программирование, но я хотел, чтобы вы иметь быстрое решение.

Лучшее решение иметь публичную функцию return ($articles) и в вашем index.php $articles = $arts->loadArticles();

+0

Спасибо Я сделал это, но его все еще работаю нормально нет Предупреждение теперь, но ничего не выводит из базы данных :( –

+0

Ну, это другое дело, вам придется использовать 'print_r' в разных местах – Forbs

Смежные вопросы