Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

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

div.main {margin-left: 20pt; margin-right: 20pt}

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


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


Весь смысл нашей разработки теряется, если мы ее не облачим в Web оболочку или иначе говоря, не создадим для нее Web интерфейс. В первую очередь, нас интересует список категорий. В предыдущей статье:"Работа с MySql. Введение." был рассмотрен пример с SQL запросом, который выводит список категорий на консоль. Теперь нам надо вывести это все в HTML страницу.

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

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

План действий составлен, можно кодировать. > #/usr/bin/perl # Используем библиотеку DBI use DBI; # Выведем заголовок типа данных print "Content-type:text/htmlnn"; # коннектимся к серверу 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->{'name'},"</td>"; $col++; } else { # $col == 2 т.е. 2-я колонка print "<td>",$ln->{'name'},"</td></tr>n"; $col = 1; $bg = 0; } } else { if ($col == 1) { # начинаем строку таблицы print "<tr>&td;td>",$ln->{'name'},"&td;/td>"; $col = 2; $bg = 1; } else { # $col == 2 print "<td>",$ln->{'name'},"</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->{'name'} на
<a href="$scr_name?page=$ln->{'id'}">$ln->{'name'}</a>
Должно получиться что-то типа:
print "<td>","<a href="$scr_name?page=$ln->{'id'}">$ln->{'name'}</a>","</td></tr>n";
После этой процедуры все категории в вышеприведенной таблице в результате окажутся ссылками, правла неработающими, так как сам скрипт нам предстоит только написать.


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте