11.6.3. Извлечение наборов записей и отображение информации из базы данных

Сделаем колонку "Traveler’s Journal" будет динамически загружаться из базы данных.

293. Откройте index.php и в области Design выделите текст, начиная с Енисейск…  и заканчивая тысяч человек в нижней части. Нажмите Delete. На пустое место будет помещен динамический текст.

294. Щелкните на изображении с надписью Traveler’s Journal, чтобы выделить его. В селекторе тегов щелкните МП на теге <h3>, слева от тега <img> и выберите пункт Remove Tag. Текст для колонки, содержащийся в базе данных, уже размечен HTML-тегами. Если не удалить тег <h3>, то теги разметки окажутся некорректно вложенными внутрь тега <h3>.

295. На панели Bindings (Привязки) щелкните на кнопке + и выберите Recordset (Query). Создается набор записей, который, представляет собой набор данных, соответствующих определенному критерию отбора и извлеченных из базы данных при помощи SQL-запроса. Цель – отобразить конкретную запись журнала, однако требуются не все записи, а только самая последняя. По этой причине каждой записи соответствует особый идентификатор (первичный ключ). При этом значение идентификатора для каждой новой записи увеличивается. Таким образом, запись с самым высоким значением поля journalID является самой последней. Для выполнения задачи требуется отсортировать данные и извлечь содержимое последней записи.

296. В поле Name окна Recordset введите имя rs_journal. В меню Connection выберите conn_enisey. В меню Table выберите пункт tbl_journal. В разделе Columns укажите вариант Selected и  выделите пункты journalID и journal_entry.

297. В списке Sort выберите пункт journalID, а в списке справа – пункт Descending (По убыванию). Нажмите OK. Теперь в SQL-запрос будет добавлено инструкция для сортировки записей по убыванию – в зависимости от времени ввода данных. Итак, информация, необходимая для создания набора записей, введена.

298. На панели Bindings раскройте пункт Recordset (rs_journal), перетащите journal_entry на страницу так, чтобы курсор находился справа от изображения, а затем отпустите кнопку мыши.

299. В главном меню в меню View выполните команду Live Data. Как известно, для тестирования динамической страницы следует нажать F12, после чего она загрузится в браузере. Но, помимо этого, существует удобная возможность наблюдать изменения на странице непосредственно из Сказочника. Речь идет о функции Live. Но у русских есть проблемы с MySQL 4.1+.  Наш текст про Енисейск вопросики!

300. Лечение работы Сказочника, которую придется делать постоянно. В начале скрипта, но после соединения выполнить SQL-запрос SET NAMES кодировка, где кодировка, та кодировка, в которой у вас данные. Например, для русской виндовой кодировки (windows-1251) это будет cp1251, для KOI8-R – koi8r, для UTF-8 – utf8.

301.Выберите для index.php вкладку Code и введите команду:

Пример 11.7. Русское лечение

<?php require_once('Connections/enisey_conn.php'); ?>
<?php
mysql_select_db($database_enisey_conn, $enisey_conn);
mysql_query("SET NAMES cp1251");
$query_rs_journal = "SELECT journalID, journal_entry FROM tbl_journal ORDER
BY journalID DESC";
$rs_journal = mysql_query($query_rs_journal, $enisey_conn) or
die(mysql_error());
$row_rs_journal = mysql_fetch_assoc($rs_journal);
$totalRows_rs_journal = mysql_num_rows($rs_journal);
?>


302. Снова в меню View выполните команду Live Data, чтобы отключить эту функцию. Сохраните страницу index.php и загрузите ее на сервер. Нажмите клавишу F12, чтобы протестировать страницу в браузере. Енисейск должен быть по русски.