В таблицу базы данныхrazmetka мы сможем добавлять необходимое количество HTML-фрагментов, каждый из них будет находиться в отдельной строке таблицы. Поле idуникально, для каждой строки таблицы–это номер строки. По номеру можно будет получить нужный фрагмент разметки.
Задача: В файле lib.phpнеобходимо создать функцию, которая по переданному ей номеру получает из базы данных соответствующую разметку и выводит на страницу.
Обратите внимание, что фрагмент кода для работы с базой данных уже находится в функции makeOpisan()–его можно скопировать и использовать в качестве шаблона с внесением некоторых изменений.
Для решения этой задачи в самом низу файла lib.phpнеобходимо добавить новую функцию:
// Получение HTML-разметки из базы данных и вывод на веб-страницу
// Выбираем базу данных с проверкой успешного выбора
if (mysql_select_db(DbName,$db))
{
//Указываем использование кодировки UTF-8
mysql_query("SET names 'utf8'",$db);
//Выполняем запрос для получения данных
$rez = mysql_query("SELECT * FROM razmetka WHERE (id={$nom})");
//Определяем количество строк в результате запроса
$kol_str = mysql_num_rows($rez);
// Если получена одна строка
if ($kol_str==1)
{
//Получаем строку
$row = mysql_fetch_row($rez);
// Получаем значение поля: html
$html = $row[1];
}
}
//Отключаемся от MySQL
mysql_close($db);
}
// Выводим HTML на страницу
echo $html;
}
Подключение к базе данных, формирование запроса и отключение происходит по уже изученной схеме.Разберем новые моменты.
function getHTML($nom)
Функции передается номер строки в таблице, который находится в колонке id. На данный момент в таблице пять строк.
// Результат работы функции
$html = "";
В переменную $html будет получен фрагмент разметки из базы данных,
// Выводим HTML на страницу
echo $html;
который в самом конце работы функции выводится на страницу.
// Выполняем запрос для получения данных
$rez = mysql_query("SELECT * FROM razmetka WHERE (id={$nom})");
Данный SQL-запрос выбирает из таблицы razmetka строку с номером из переменной$nom.
// Если получена одна строка
if ($kol_str==1)
{
//Получаем строку
$row = mysql_fetch_row($rez);
Если строка с таким номером будет найдена, то запрос вернет всего одну строку.
// Получаем значение поля: html
$html = $row[1];
По номеру колонки получаем значение из колонки htmlтаблицы razmetka.
Для того чтобы получить нужный HTML-код, в дальнейшем будет достаточно вызвать функцию getHTML() и передать ей номер фрагмента разметки.
Внимание!!!Программный код файла lib.php увеличивается. Функции с программным кодом можно сворачивать/разворачивать при помощи знака +/- слева от названия функции (см. рис. 9.13)