![]() |
Библиотека Интернет Индустрии I2R.ru |
||
Работа с MySql. Создание Web интерфейсаЗначит установим цель: вывести в две колонки список категорий, слегка облагородив его. Поступим так: изготовим любую HTML страницу с необходимым нам дизайном, и в то место, где нам нужен список категорий поставим комментарий :
План действий составлен, можно кодировать.
>
#/usr/bin/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 = <FILE>;
close FILE;
# ищем строку комментария
foreach $line(@arr) {
if ($line =~ "<!-- CATEGORIES_HERE") { # если нашли,
print "<tr>\n"; # начинаем вывод таблицы
$bg = 1; # признак начатой строки таблицы
$col = 1; # номер текущей колонки
print "<table width = \"80%\">\n";
# разбор резульата SQL запроса
while (my $ln = $result->fetchrow_hashref()) {
if ($bg == 1) { # начата строка таблицы
if ($col == 1) { # если первая колонка
print "<td>",$ln->,"</td>";
$col++;
} else { # $col == 2 т.е. 2-я колонка
print "<td>",$ln->,"</td></tr>\n";
$col = 1;
$bg = 0;
}
} else {
if ($col == 1) { # начинаем строку таблицы
print "<tr>&td;td>",$ln->,"&td;/td>";
$col = 2;
$bg = 1;
} else { # $col == 2
print "<td>",$ln->,"</td></tr>\n";
$col = 1;
$bg = 0;
}
}
}
if ($bg == 1) { # если строка начата и больше нет данных в результате
print "<td> </td></tr>\n"; # надо корректно закрыть начатую строку таблицы
}
print "</table>\n"; # и закрыть таблицу
}
}
# метод finish означает, что ссылка на текущий
SQL запрос использоваться больше не будет
# и его можно завершить. По идее, его нужно вызывать перед
выполнением нового запроса или перед
# разрывом соединения с базой данных.
# Вообще-то когда все данные выбраны из результата,
этот метод вызывается автоматически,
# но возникают ситуации, когда его нужно вызывать принудительно.
На моей машине именно так и было
# У вас эта ситуация может и не возникнуть.
$result->finish();
# Разрыв соединения с сервером.
$dbh->disconnect();
В результате вы должны получить следующую таблицу (рамки включены умышленно):
Все хорошо, только толку от нашей таблицы нет никакого. Нужно, чтобы, щелкнув по категории, открывалась
страница со ссылками этой категории. Для этого нужно немного дописать код нашей программы.
Введем переменную "$scr_name", обозначающую файл, содержащий скрипт, который будет выводить
страницу со ссылками. После строки Далее, внутри цикла |
|
| 2000-2008 г. Все авторские права соблюдены. |