На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » И2Р Программы » Программирование » Perl

Работа с MySql. Создание Web интерфейса

Значит установим цель: вывести в две колонки список категорий, слегка облагородив его. Поступим так: изготовим любую HTML страницу с необходимым нам дизайном, и в то место, где нам нужен список категорий поставим комментарий :

<!-- CATEGORIES_HERE -->
Сей шаг мы делаем для того, чтобы скрипт не перегружать текст программы избыточным кодом. Итак, приступим:

  • Вывести заголовок типа данных;
  • Выполнить SQL запрос;
  • Разобрать результат;
  • Вставить результат в шаблон 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", обозначающую файл, содержащий скрипт, который будет выводить страницу со ссылками. После строки use DBI; вставим строку $scr_name="getlinks.pl"

Далее, внутри цикла while заменим все параметры функции print .... $ln-> на
<a href=\"$scr_name?page=$ln->\">$ln-></a>
Должно получиться что-то типа:
print "<td>","<a href=\"$scr_name?page=$ln->\">$ln-></a>","</td></tr>\n";
После этой процедуры все категории в вышеприведенной таблице в результате окажутся ссылками, правла неработающими, так как сам скрипт нам предстоит только написать.

Cухинин A.
Webscript.ru

Другие разделы
C, C++
Java
PHP
VBasic, VBS
Delphi и Pascal
Новое в разделе
Базы данных
Общие вопросы
Теория программирования и алгоритмы
JavaScript и DHTML
Perl
Python
Active Server Pages
Программирование под Windows
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100