Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2012, 23:58   #1
Newpitbull
Пользователь
 
Регистрация: 17.09.2011
Сообщений: 44
Вопрос Запутанный код (OOP PHP)

Хочу написать скрипт блога(такого простенького), и хочу реализовать ее с OOP используя MVC метод.

Написал вот такой кривой код:
PHP код:
//controller

<?
require_once $_REQUEST['DOCUMENT_ROOT'].'model/m_article.php';
class 
ARTICLE extends M_ARTICLE {
    function 
article($cat) {
        
$sql $this->m_article($cat);
        if(!
$sql) die('<b>Ошибка!</b> Не удалось обратиться к функции для работы со статьями.');
        
$row mysql_fetch_assoc($sql);
        if(!
$row) {
            echo 
"Данный раздел пока пуст.";
        }
        do {         
            echo 
"<h2>$row[title]</h2>"."<p>$row[text]</p><hr>";
        }
        while(
$row mysql_fetch_assoc($sql));
        return 
$row;
    }
}
if(isset(
$_GET['catalog'])){
    
$cat $_GET['catalog'];
    
$article = new ARTICLE($cat);
}

?>


//model

<?php
class M_ARTICLE {
    function 
m_article($cat) {
        
$sql "SELECT * FROM `article` WHERE `catalog`='$cat'";
        
$res mysql_query($sql);
        if(!
$res) die('<b>Ошибка!</b> Не удалось получить список статей.');
        return 
$res;
    }
}
?>
Вроде работающий код, статьи с БД выводятся хорошо, только появилась такая проблема не знаю как вытащить от туда description, keywords и title и установить их в свои яцейки, так как из за
этого кода:
PHP код:
<?
do {         
            echo 
"<h2>$row[title]</h2>"."<p>$row[text]</p><hr>";
        }
        while(
$row mysql_fetch_assoc($sql));
?>
расположенного внутри контроллера, список со статьями выводится прямиком в теле документа, я могу сделать нужный мне вывод не используя ООР и MVC написать код прямиком на странице вывода, но хотелось бы это реализовать именно по такой технологии.
Или может выводить в цикле как я вывожу неправильно? Или есть какое то правильное решение?
Newpitbull вне форума Ответить с цитированием
Старый 16.05.2012, 00:19   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Раз уж взялись за MVC - то в Controller не должно быть никакого вывода, весь вывод должен быть в View.
Controller получает данные через Model - и передает их в View.

Пример простой реализации MVC
Andkorol вне форума Ответить с цитированием
Старый 16.05.2012, 00:28   #3
Newpitbull
Пользователь
 
Регистрация: 17.09.2011
Сообщений: 44
По умолчанию

На счет view я знаю, тока чтоб выводить цикл с БД придется код писать в самом view а это по моим данным не есть хорошо, по крайней мере слышал что нехорошо хотя уже не уверен)
Newpitbull вне форума Ответить с цитированием
Старый 16.05.2012, 02:11   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Именно вывод писать во вьюхе, без всякой обработки, - это нормально, уж точно лучше, чем писать его в контроллере. Yii по умолчанию так работает. А вообще советую ознакомиться с такой вещью как шаблонизаторы, например, Smarty
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OOP Pascal МихаилС Помощь студентам 1 23.10.2011 13:56
OOP Pascal TCollection МихаилС Помощь студентам 0 22.10.2011 22:41
запутанный sql-запрос ubun БД в Delphi 2 16.08.2011 22:17
Запутанный класс BadProgrammer Общие вопросы C/C++ 3 11.01.2011 10:05