Войти

Вывод данных из БД на сайт

01.03.2013 09:39

Переходя к этой теме я специально опуская процесс создания самой БД. Стоит лишь упомянуть, что для добавления новых статей я использую 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>

Теперь все статьи, которые будут добавляться в БД, будут автоматически попадать на сайт.

comments powered by Disqus
  BENCHMARKS  
Loading Time: Base Classes  0.0032
Controller Execution Time ( Blog / Show )  0.0062
Total Execution Time  0.0095
  GET DATA  
No GET data exists
  MEMORY USAGE  
2,218,296 bytes
  POST DATA  
No POST data exists
  URI STRING  
blog/show/11
  CLASS/METHOD  
blog/show
  DATABASE:  blogAlenin (Blog:$db)   QUERIES: 3 (0.0007 seconds)  (Hide)
0.0003   SELECT *
FROM `article`
WHERE `id` = '11' 
0.0002   SELECT *
FROM `article`
WHERE `id` = '11' 
0.0002   SELECT *
FROM `categories`
ORDER BY `nameAS
  HTTP HEADERS  (Show)
  CONFIG VARIABLES  (Show)