MVC как писать запрос mysql в model

m1ko

Создатель
Регистрация
15 Авг 2010
Сообщения
42
Реакции
3
Пытаюсь написать свой скрипт по урокам, пересмотрел кучу и запутался и не нашел в них как именно в модели ПРАВИЛЬНО написать запрос, допустим выбрать все из таблицы news и передать их в представление.
Кто поможет если не трудно?

Сейчас в модели написан в ручную массив


PHP:
class Model_Updates extends Model
{
    public function get_updates()
    {  
    return array(
          
            array(
                'title' => 'Новость 1.',
                'content' => 'Контент..',
                'author' => 'Author',
                'date' => '12-04-2013'
            ),
            array(
                'title' => 'Новость 2',
                'content' => 'Контент...',
                'author' => 'Author',
                'date' => '12-04-2013'
            ),
        );
    }


}
 
Тебе в помощь mysql_fetch_array();

$sql=mysql_query("select * from news");
while($r[]=mysql_fetch_array($sql));
 
Тебе в помощь mysql_fetch_array();

$sql=mysql_query("select * from news");
while($r[]=mysql_fetch_array($sql));
Я нашел пока что такой вариант
PHP:
$q = "SELECT * FROM news ORDER BY date DESC, id DESC";
        $res = mysql_query($q) or die(mysql_error());   
        $posts = array();
        while ($row = mysql_fetch_assoc($res)) {
            $posts[] = $row;
        }   
        return $posts;
 
Идея примерно правильная.

Вот только, работать с такой моделью (как сейчас) не очень удобно. Если потребуется по ID или по URL-у (alias, slug и тд) одну запись выдернуть - придётся ещё дописывать. Если все записи за месяц (за год, из категории "электроника", только "включенные") - тоже пилить придётся.

p.s. вместо mysql_ функций уже давно рекомендуется использовать PDO или mysqli_
 
Идея примерно правильная.

Вот только, работать с такой моделью (как сейчас) не очень удобно. Если потребуется по ID или по URL-у (alias, slug и тд) одну запись выдернуть - придётся ещё дописывать. Если все записи за месяц (за год, из категории "электроника", только "включенные") - тоже пилить придётся.

p.s. вместо mysql_ функций уже давно рекомендуется использовать PDO или mysqli_
У меня уже наброшены функции такие как getRow getAll getOne отдельно можно и с остальными параметрами сделать, но у меня проблема var_dump выводит bool(false)
код функции у меня уже другой.
 
А что выведет функция mysql_error() ?
Mysql_error выводит сообщение о ошибке от базы данных чтобы программист мог понять почему например в базу данных что то не вставилось или что то не выдернулось
 
Mysql_error выводит сообщение о ошибке от базы данных чтобы программист мог понять почему например в базу данных что то не вставилось или что то не выдернулось
Капитан очевидность )))
Для просмотра ссылки Войди или Зарегистрируйся имел в виду: какое сообщение отдает mysql_error() учитывая, что var_dump выводит bool(false).
Знаю ошибку - легко решить проблему.
 
Капитан очевидность )))
Для просмотра ссылки Войди или Зарегистрируйся имел в виду: какое сообщение отдает mysql_error() учитывая, что var_dump выводит bool(false).
Знаю ошибку - легко решить проблему.
Написали что бы похвастаться?

mysql_error(); молчит ничего не выдает

Вообщем нашел ошибку в коде, исправил но теперь var_dump выводит за место того что нужно

object(mysqli_result)#6 (5) { ["current_field"]=> int(0) ["field_count"]=> int(5) ["lengths"]=> NULL ["num_rows"]=> int(2) ["type"]=> int(0) }
 
Последнее редактирование:
Пытаюсь написать свой скрипт по урокам, пересмотрел кучу и запутался и не нашел в них как именно в модели ПРАВИЛЬНО написать запрос, допустим выбрать все из таблицы news и передать их в представление.
Кто поможет если не трудно?

Сейчас в модели написан в ручную массив


PHP:
class Model_Updates extends Model
{
    public function get_updates()
    { 
    return array(
         
            array(
                'title' => 'Новость 1.',
                'content' => 'Контент..',
                'author' => 'Author',
                'date' => '12-04-2013'
            ),
            array(
                'title' => 'Новость 2',
                'content' => 'Контент...',
                'author' => 'Author',
                'date' => '12-04-2013'
            ),
        );
    }


}

MVC на то и паттерн архитектуры проектирования, чтобы упростить разработку а никак не усложнять её. MVC это ООП, то есть никаких fetch_array и т.д. здесь в помине не нужно писать. Объектно ориентировочная структура позволяет выполнять запросы например вот так:
$this->db->query('ЗДЕСЬ ВАШ ЗАПРОС');
ну и соответственно
$query = $this->db->query('ЗДЕСЬ ВАШ ЗАПРОС');

где в query результат вашего запроса, это пример из CodeIgniter, у вас может быть по другому, но суть остается сутью. Классовая структура и обращения к объектам класса.
 
Назад
Сверху