Запрос к БД и отображение данных в 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), а второй текст ссылки (то что увидит пользователь);
Продолжим позднее.
Удачи!
- Добавить комментарий
- 2095 просмотров