Работа с MySql. Создание Web интерфейса
Весь смысл нашей разработки теряется, если мы ее не облачим в Web оболочку или иначе говоря, не создадим для нее Web интерфейс. В первую очередь, нас интересует список категорий. В предыдущей статье:”Работа с MySql. Введение.” был рассмотрен пример с SQL запросом, который выводит список категорий на консоль. Теперь нам надо вывести это все в HTML страницу.
Значит установим цель: вывести в две колонки список категорий, слегка облагородив его. Поступим так: изготовим любую HTML страницу с необходимым нам дизайном, и в то место, где нам нужен список категорий поставим комментарий :
Сей шаг мы делаем для того, чтобы скрипт не перегружать текст программы избыточным кодом. Итак, приступим:
1. Вывести заголовок типа данных;
2. Выполнить SQL запрос;
3. Разобрать результат;
4. Вставить результат в шаблон HTML страницы;
План действий составлен, можно кодировать.
#/usr/bin/perl “; \n”; } else { \n”; \n”; # надо корректно закрыть начатую строку таблицы \n”; # и закрыть таблицу В результате вы должны получить следующую таблицу (рамки включены умышленно): Все хорошо, только толку от нашей таблицы нет никакого. Нужно, чтобы, щелкнув по категории, открывалась страница со ссылками этой категории. Для этого нужно немного дописать код нашей программы. Введем переменную “$scr_name”, обозначающую файл, содержащий скрипт, который будет выводить страницу со ссылками. После строки use DBI; вставим строку $scr_name=”getlinks.pl” Далее, внутри цикла while заменим все параметры функции print …. $ln->{’name’} на \n”; webscript.ru
Июль 17, 2008 — Рубрика: Perl
# Используем библиотеку DBI
use DBI;
# Выведем заголовок типа данных
print “Content-type:text/html\n\n”;
# коннектимся к серверу MySql
my $dbh = DBI->connect(”DBI:mysql:database=ваша_база_данных;host=адрес_сервера_mysql”,
“логин”, “пароль”) || die $DBI::errstr;
# готовим запрос
my $result = $dbh->prepare(”SELECT * FROM category”);
# и выполняем его
$result->execute();
# начинаем вывод в шаблон вместо комментария.
open FILE, “cat_template.html” || die (”Не могу открыть файл cat_template.html!\n”);
@arr =
close FILE;
# ищем строку комментария
foreach $line(@arr) {
if ($line =~ ” CATEGORIES_HERE”) { # если нашли,
print “
\n”; # начинаем вывод таблицы
$bg = 1; # признак начатой строки таблицы
$col = 1; # номер текущей колонки
print “
\n”;
# разбор резульата SQL запроса
while (my $ln = $result->fetchrow_hashref()) {
if ($bg == 1) { # начата строка таблицы
if ($col == 1) { # если первая колонка
print “
“,$ln->{’name’},”
$col++;
} else { # $col == 2 т.е. 2-я колонка
print “
“,$ln->{’name’},”
$col = 1;
$bg = 0;
}
if ($col == 1) { # начинаем строку таблицы
print “
&td;td>”,$ln->{’name’},”&td;/td>”;
$col = 2;
$bg = 1;
} else { # $col == 2
print “
“,$ln->{’name’},”
$col = 1;
$bg = 0;
}
}
}
if ($bg == 1) { # если строка начата и больше нет данных в результате
print “
}
print “
}
}
# метод finish означает, что ссылка на текущий SQL запрос использоваться больше не будет
# и его можно завершить. По идее, его нужно вызывать перед выполнением нового запроса или перед
# разрывом соединения с базой данных.
# Вообще-то когда все данные выбраны из результата, этот метод вызывается автоматически,
# но возникают ситуации, когда его нужно вызывать принудительно. На моей машине именно так и было
# У вас эта ситуация может и не возникнуть.
$result->finish();
# Разрыв соединения с сервером.
$dbh->disconnect();
Интернет Развлечения
Документация Софт
Поисковые системы Чаты
Для разработчиков Документация по ПХП
Фидо-гейты Новости
{’id’}\”>$ln->{’name’}
Должно получиться что-то типа:
print “
“,”{’id’}\”>$ln->{’name’}“,”
После этой процедуры все категории в вышеприведенной таблице в результате окажутся ссылками, правла неработающими, так как сам скрипт нам предстоит только написать.
Метки: mysql, Perl, web, интернет, интерфейс, обучение, пример, программирование
