onix-la2
Новичок
Я пока только обучаюсь, стараюсь обучиться, добрался до темы ООП, но столкнулся с проблемамы в самом начале уже (( Прошу помочь разобраться.
Браузер выдает такую ошибку: Notice: Undefined variable: articles in C:\xampp\htdocs\www\mysite\dz2\dz4\v\v_index.php on line 2
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\www\mysite\dz2\dz4\v\v_index.php on line 2
и так файл c_model.php
Collector.php
index.php
v_index.php
c_base.php
c_index.php
Браузер выдает такую ошибку: Notice: Undefined variable: articles in C:\xampp\htdocs\www\mysite\dz2\dz4\v\v_index.php on line 2
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\www\mysite\dz2\dz4\v\v_index.php on line 2
и так файл c_model.php
Код:
<?php
include_once('c/Controller.php');
//include_once('m/startup.php');
function articles_all()
{
// Запрос.
$query = "SELECT * FROM articles ORDER BY id_article DESC";
$result = mysql_query($query);
if (!$result)
die(mysql_error());
// Извлечение из БД.
$n = mysql_num_rows($result);
$articles = array();
for ($i = 0; $i < $n; $i++)
{
$row = mysql_fetch_assoc($result);
$articles[] = $row;
}
return $articles;
}
function articles_intro($article)
{
if (strlen($article['content'])>13)
return substr($article['content'],0,13);
else
return $article ['content'];
}
function articles_get($id_article)
{
$result = mysql_query('SELECT * FROM articles WHERE id_article =' . $_GET['id']);
if (!$result)
die(mysql_error());
$row = mysql_fetch_assoc($result);
return $row;
}
//
// Добавить статью
//
function articles_new($title, $content)
{
// Подготовка.
$title = trim($title);
$content = trim($content);
// Проверка.
if ($title == '')
return false;
// Запрос.
$t = "INSERT INTO articles (title, content) VALUES ('%s', '%s')";
$query = sprintf($t,
mysql_real_escape_string($title),
mysql_real_escape_string($content));
$result = mysql_query($query);
if (!$result)
die(mysql_error());
return true;
}
//
// Изменить статью
//
Код:
<?php
//
// Базовый класс контроллера.
//
abstract class Controller
{
//
// Конструктор.
//
function __construct()
{
}
//
// Полная обработка HTTP запроса.
//
public function Request()
{
$this->OnInput();
$this->OnOutput();
}
//
// Виртуальный обработчик запроса.
//
protected function OnInput()
{
}
//
// Виртуальный генератор HTML.
//
protected function OnOutput()
{
}
//
// Запрос произведен методом GET?
//
protected function IsGet()
{
return $_SERVER['REQUEST_METHOD'] == 'GET';
}
//
// Запрос произведен методом POST?
//
protected function IsPost()
{
return $_SERVER['REQUEST_METHOD'] == 'POST';
}
//
// Генерация HTML шаблона в строку.
//
public function view_include($fileName, $vars = array())
{
// Установка переменных для шаблона.
foreach ($vars as $k => $v)
{
$$k = $v;
}
// Генерация HTML в строку.
ob_start();
include $fileName;
return ob_get_clean();
}
}
Код:
<?php
include_once('c/c_index.php');
include_once('v/v_index.php');
include_once('m/startup.php');
$controller = new c_index();
$controller->Request();
?>
Код:
<ul>
<?foreach($articles as $article):?>
<li>
<?=$article['id_article']?>.
<a href="article.php?id=<?=$article['id_article']?>">
<?=$article['title']?>
</a>
</br>
<?=$article['content']=articles_intro($article)?>
</li>
<?endforeach?>
</ul>
Код:
<?php
include_once('c/Controller.php');
// Базовый контроллер сайта.
//
abstract class c_base extends Controller
{
protected $title; // заголовок страницы
protected $content;
public $articles;
//
// Конструктор.
//
function __construct()
{
}
//
// Виртуальный обработчик запроса.
//
protected function OnInput()
{
startup();
}
//
// Виртуальный генератор HTML.
//
protected function OnOutput()
{
$vars = array('title' => $this->title, 'content' => $this->content);
$page = $this->view_include('v/v_main.php', $vars);
echo $page;
}
}
Код:
<?
include_once('c/c_model.php');
include_once('c/c_base.php');
include_once('m/startup.php');
class c_index extends c_base{
function __construct()
{
}
protected function OnInput()
{
parent::OnInput();
$this->articles = articles_all();
}
//
// Виртуальный генератор HTML.
//
protected function OnOutput()
{
$vars = array('articles' => $this ->articles);
$articles = $this->view_include('v/v_index.php', $vars);
parent::OnOutput();
}
}