Переходя к этой теме я специально опуская процесс создания самой БД. Стоит лишь упомянуть, что для добавления новых статей я использую HeidiSQL. Она представляет из себя бесплатную программу для управления базами данных MySQL из под MS Windows. Добавлять новую запись можно ручками через обычные SQL запросы, там и мышкой, вызвав правой кнопкой контекстное меню и выбрав пункт Insert row.
Теперь непосредственно то, что касается вывода данных на сайт.
Для этого создадим в модели класс Article_m, а в нём метод get. Сначала упорядочим статьи по id в порядке убывания. Это нужно для того, что бы на первой странице всегда выводилась последняя добавленная запись:
$this->db->order_by('id','desc');
Теперь создадим запрос к БД и результат запроса вернем как обычный массив:
$query = $this->db->get('article',$num, $str);
return $query->result_array();
Теперь в контроллере загрузим нашу модель:
$this->load->model('article_m');
Передадим результат запроса в ассоциативный массив:
$data['articles'] = $this->article_m->get($config['per_page'], $str);
Назначение переменных $config['per_page'], $str будет объяснено чуть позже. Теперь передадим наш ассоциативный массив в отображение:
$this->load->view('contentarticle_v', $data);
Теперь ловим articles в виде и проходимся по нему foreach-ем:
<div id="content">
<?php foreach ($articles as $row)
if(isset($row) && is_array($row) && count($row)>=0)
{;?>
<!--вывод результата из массива -->
<div id="articles">
<h2><?= $row['title'];?></a></h2>
<div class="date"><?= date("d.m.Y H:i",strtotime( $row['date']));?></div>
<div class="body"><?= $row['body'];?></div>
<?php };?>
</div>
<?php } else {
return 'Нет статей в базе';
};?>
</div>
Теперь все статьи, которые будут добавляться в БД, будут автоматически попадать на сайт.