Библиотека Интернет Индустрии 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 г. Все авторские права соблюдены. |
|