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

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

Работа с MySql. Создание каталога ссылок

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

Работа с MySql. Создание каталога ссылок


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


Продолжим создание каталогизатора ссылок.

links

category

Кроме того, мы внесли в таблицу category данные, импортировав их из текстового файла. Во второй статье мы "одели" результат запроса из списка категорий в Web-интерфейс. Теперь нам нужно заполнить таблицу links, написать скрипт getlinks.pl для вывода списка ссылок с сообтветствующими категориями. Поступим с заполнением таблицы links также, как и с таблицей categories : импортируем ссылки из текстового файла. Текстовый файл: "ProgramminG-программирование для всех!";"http://www.programming.dax.ru";1 "Corwell Design Studio";"http://www.cds.ru";1 "МТУ-Информ";"http://www.mtu.ru";1 "Студия Артемия Лебедева";"http://www.design.ru";1 "Каталог детских ресурсов";"http://www.kinder.ru/";1 "Быки и коровы";"http://bk.ru";2 "Мерен";"http://meren.ru/";2 "Все девочки";"http://www.allgirls.ru/";2 "Развлекательный сайт пива Доктор Дизель";"http://www.doctordizel.ru";2 "Анекдотов.net - максимум развлечений";"http://anekdotov.net";2 "Знакомства и Развлечения";"http://www.atis.kz/";2 "Чертовы Кулички";"http://www.kulichki.com/";2 "Драконье логово";"http://balrog.virtualave.net/";2 "Инфосити";"http://www.infocity.kiev.ua/";3 "Открытые системы";"http://www.opennet.ru/";3 "Масса полезной документации";"http://citforum.ru/";3 "Download.ru";http://www.download.ru/;4 "СОФТЛИСТ.РУ";http://www.softlist.ru/;4 "Темы.РУ";http://www.themes.ru/;4 "Altavista.com";"http://www.altavista.com/";5 "Яндекс.ру";"http://www.yandex.ru/";5 "Мета-ukraine";"http://meta-ukraine.com/";5 "Gala chat";"http://www.galachat.com";6 "Свежак для открытых систем";"http://freshmeat.net";7 "Sourceforge";"http://sourceforge.net";7 "Linuxguru";"http://www.linuxguru.com";7 "Для Web-разработчика";"http://www.stars.com";7 "PHP.net";"http://www.php.net";8 "Google groups";"http://groups.google.com";9 "Lenta.ru";"http://lenta.ru";10 "Корреспондент.нет";"http://www.korrespondent.net";10

Сохранить его , скажем в "c:MyDocslinks.txt". Теперь нужно поместить его в таблицу links. Мы это уже делали с категориями, теперь запросом LOAD DATA LOCAL INFILE '/MyDocs/links.txt' REPLACE
INTO TABLE links FIELDS TERMINATED BY ';' OPTIONALLY
ENCLOSED BY '"' LINES TERMINATED BY 'r'

заполним таблицу ссылок из текстового файла.

Запрос можно выполнить как из скрипта, так и из программы администрирования SQL сервера.

Теперь можно писать скрипт, который будет выводить список ссылок из выбранной категории. В предыдущей статье мы написли ссылку
print "<td>","<a href="$scr_name?page=$ln->{'id'}">$ln->{'name'}</a>","</td></tr>n";
Значит, в качестве параметров мы передаем скрипту номер (id) категории под именем page. Чтобы вывести ссылки только из данной категории, нужно выполнить SQL запрос SELECT * FROM links WHERE category=id;

Скрипт будет выполнять следующие действия:

Разбор параметров, переданных в скрипт;

Выполнение SQL запроса;

Вывод результата в указанное место в шаблоне.

Подготовим HTML документ с необходимым нам оформлением, и в том месте, где должны быть ссылки вставим комментарий: <!-- LINKS_HERE -->

Программа на языке Perl будет иметь следующий вид: #!/usr/bin/perl use DBI; print "Content-type:text/htmlnn"; $temp=$ENV{'QUERY_STRING'}; # Разбор строки параметров if ($temp ne '') { @pairs=split(/&/,$temp); foreach $item(@pairs) { ($key,$content)=split (/=/,$item,2);
# Режем на название ключа и значение.

# Названия параметров и значения помещаем в хэш
$data{$key}=$content; } } # проверяем, есть ли переменная с именем page if ($data{'page'} ne undef) { # $qry = "SELECT * FROM links WHERE category=".$data{'page'}; # my $dbh = DBI->connect("DBI:mysql:database=ваша_база_данных; host=адрес_сервера_mysql", "логин", "пароль") || die $DBI::errstr; # готовим запрос my $result = $dbh->prepare($qry); # и выполняем его $result->execute(); # разбираем результат print "<ul>n"; while (my $ln = $result->fetchrow_hashref()) { print "<li><a href="", $ln->{'url'},""
target="_blank">",$ln->{'name'},"</a></li>n"; } print "</ul>n"; $dbh->disconnect(); print "<a href=javascript:history.back()>Предыдущая страница</a>n"; }

В результате исполнения этого скрипта будет выведен список ссылок, оформленный как Немаркированный список, каждая ссылка будет открываться в новом окне.

Надеюсь, принцип работы данной программы понятен, и каждый волен ее дорабатывать на свой вкус. Я , например в рабочей версии каталогизатора (она, правда написана на PHP), еще добавил в таблицу links еще и описание ресурса, и счетчик, куда записывается каждый клик по ссылке.


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




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