Запрос к БД и отображение данных в CodeIgniter

На данный момент у нас создана база данных, контроллер и представление для отображения данных нашего сайта на CodeIgniter. Дело за малым, осталось извлечь наши данные и передать их в представление, а в представлении написать код для отображения.

Изменим наш код, так чтобы на гавлной старнице отображался список страниц на нашем сайте с текстом (пока полным, позже мы будем выводить усеченный текст) и ссылка для перехода к странице:

  • откройте контроллер Page (файл page.php);
  • измените функцию index
    function index()
    {
    $data['heading'] = 'Главная страница';
    $data['query'] = $this->db->get('pages', 10);
    $this->load->view('main_view', $data);
    }
  • обращаю ваше внимание на вторую строку этой функции. В ней производится запрос на извлечение первых 10 строк из таблицы pages, т.е. в данном случае мы не пишем sql-запрос целиком и не выбираем столбцы таблицы, которые хотим получить. Весь код инициализации подключения и извелчения данных написан до нас, мы лишь пользуемся им;
  • полученные данные передаются в представление main_view через элемент query массива data;
  • рассмотрим как меняется наше представление main_view:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Сайт на CodeIgniter.</title>
    <link type="text/css" rel="stylesheet" media="all" href="style.css"/>
    </head>
    <body>
    <h1><?php echo $heading;?></h1>
    <?php
    foreach ($query->result() as $row)
    {
    echo '<h2>' . $row->header . '</h2>';
    echo '<p>'. $row->content . '</p>';
    echo anchor('page/view/'.$row->id, 'view page');}
    ?>
    </body>
    </html>
  • рассмотрим тело страницы (внутри элемента body). Сначала выводится общиц заголовок страницы из переменной $heading. Обратите внимание, что при переходе к отображению элементы массива $data стали отдельными переменными, т.е. было $data['heading'] стало $heading, тоже самое стало с $query (результатом запроса);
  • представление по сути это html страница со вставками php кода. Все вставки php-кода ограничены рамками <?php ... ?> (вместо троеточия ваш код php);
  • второй кусок кода отображает заголовок, текст страницы и ссылку на саму страницу (эта часть функционала пока нами не реализована);
  • символ "." в операторе echo объединяет строки, так что не удивляйтесь. Сам оператор echo выводит текст, т.е. из конечной страницы убирается текст заключенный в <?php ?> и замещается текстом переданным с помощью оператора echo;
  • функция anchor помогает нам создать код ссылки. Первый параметр относительный путь ссылки (href), а второй текст ссылки (то что увидит пользователь);

Продолжим позднее.
Удачи!

 

вернуться назад