Macromedia Dreamweaver MX

Создание сложных наборов данных

Осталось изменить страницу Guestbook_table. asp так, чтобы она отображала не только содержимое поля content, но и содержимое поля sign. Давайте сделаем это и попутно изучим построение сложных SQL-запросов и созда­ние сложных наборов данных.

На первый взгляд, задача, стоящая перед нами, очень проста. В самом деле, мы уже знаем, как создать динамический текст и привязать его к полю на­бора данных. Мы уже, собственно, выполнили это, когда делали страницы Guestbook. asp и Guestbook_table. asp. Теперь же нам ничего не стоит доба­вить в повторяющуюся область последней страницы новый динамический текст, привязанный к полю sign.

Давайте так и сделаем. И что получится в результате? А вот что.

Когда мы откроем доработанную страницу Guestbook_table. asp в Web - обозревателе, то увидим, что вместо слов "Положительно", "Отрицательно" или "Нейтрально" стоят цифры от 1 до 3. Почему? Да потому, что созданное нами поле sign имеет числовой тип, и именно число, находящееся в нем, отображается на странице. Но мы-то хотим увидеть слова, а не цифры! Что делать?

Создать сложный набор данных, извлекающий данные не из одной, а из не­скольких таблиц. А для этого нам придется построить сложный SQL-запрос, и сделать это нужно вручную.

Откройте страницу Guestbook_table. asp и переключитесь на панель Bindings. Дважды щелкните по пункту Recordset (Guestbook), представляющему соз­данный нами ранее простой набор данных. (Простым набором данных назы­вается тот, который извлекает данные из одной таблицы.) На экране по­явится диалоговое окно Recordset. Щелкните по кнопке Advanced — и это окно изменит свой вид (рис. 17.31).

Создание сложных наборов данных

Рис. 17.31. Диалоговое окно Recordset (расширенное)

В этом диалоговом окне нам понадобятся поле ввода SQL, список Database Items и кнопки SELECT, WHERE и ORDER BY. Многоколоночный список Variables и все относящиеся к нему кнопки мы пока трогать не будем.

В поле ввода SQL, как вы поняли, вводится текст SQL-запроса. В настоя­щее время он таков:

SELECT * FROM Guestbook

Выше мы уже рассмотрели этот запрос по частям, поэтому не будем здесь повторяться. Напомним только, что этот запрос извлекает все поля всех записей из таблицы Guestbook.

Поскольку мы хотим создать новый запрос SQL, то давайте сначала удалим все содержимое поля ввода SQL. И начнем, что называется, с чистого листа.

Прежде всего поочередно откроем ветви Tables и Guestbook и выберем пункт Content в списке Database Items. Далее нажмем кнопку SELECT, что­бы поместить в поле ввода SQL ключевое слово select с выбранным нами полем content. В поле ввода SQL появится такой код:

SELECT Content FROM Guestbook

Затем поместим текстовый курсор после слов "SELECT Content", откроем ветви Tables и Signs и выберем пункт Desc. Опять нажмем кнопку SELECT. Код примет следующий вид:

SELECT Content, Desc FROM Guestbook, Signs

Как видите, мы извлекаем данные уже из двух таблиц: поле content из таб­лицы Guestbook И поле Desc ИЗ таблицы Signs.

Осталось только добавить условие, связывающее запись таблицы Guestbook с записью таблицы signs. Для этого добавим условие выборки записей. Вы­берем пункт Sign в подветви Guestbook ветви Tables и нажмем кнопку WHERE. Код в поле ввода SQL опять изменится:

SELECT Content, Desc FROM Guestbook, Signs WHERE Sign

Поставим текстовый курсор после текста "WHERE Sign", введем знак "=", выберем пункт ID ветви Signs в ветви Tables и опять нажмем кнопку WHERE. Код в поле ввода SQL примет свой окончательный вид:

SELECT Content, Desc FROM Guestbook, Signs WHERE Sign=ID

Здесь ключевое слово where обозначает условие отбора записей. А код sign=iD показывает, что в набор попадут только те записи таблицы Guestbook, значения поля sign которых равно значению поля id соответст­вующей записи таблицы signs.

Чтобы проверить созданный SQL-запрос, нажмите кнопку Test. Если он правилен, на экране появится диалоговое окно Text SQL Statement, содер­жащее записи созданного набора данных.

Нажмите кнопки ОК обоих диалоговых окон. И на всякий случай сохраните страницу. Сложный набор данных, извлекающий записи из двух таблиц, нами создан. Этот набор содержит два поля: content (содержимое записи гостевой книги), взятое из таблицы Guestbook, и Desc (оценка сайта посети­телем), взятое из таблицы signs.

Что теперь? Может, создать новый динамический текст и привязать его к полю Desc? Можно, конечно. Но мы поступим по-другому. Как? Сейчас увидите.

Работа с динамическими атрибутами

Когда мы говорили о шаблонах (см. главу 9), то выяснили, что атрибуты те­гов можно сделать изменяемыми. В Web-страницах, созданных на основе шаблона, мы можем задавать значения для этих атрибутов и, таким обра­зом, менять их внешний вид в более широких пределах. Но атрибуты тегов можно сделать и динамическими, т. е. брать их значения из полей набора данных. Здесь мы рассмотрим, как работать с такими атрибутами.

Давайте сделаем так, чтобы содержимое разных записей набора данных Guestbook отображалось различным цветом в зависимости от значения, со­держащегося в поле sign. Пусть, например, содержимое поля content ото­бражается темно-синим цветом, если в поле sign содержится единица ("По­ложительно"), темно-красным — если содержится тройка ("Отрицательно"), черным — в остальных случаях (двойка, "Нейтрально"). Соответствующие коды цветов в этом случае:

□ темно-синий — #000099;

□ темно-красный — #990000;

□ черный — #000000.

Откроем базу данных Guestbook. mdb в Access и создадим новое поле в таб­лице signs. Дадим этому полю имя color, текстовый тип и установим его длину в 7 символов — этого хватит, чтобы хранить коды цветов. После чего откроем таблицу signs и введем коды цветов в соответствующие записи таб­лицы. После этого закроем Access.

Далее переключимся в Dreamweaver, вызовем диалоговое окно Recordset для набора данных Guestbook и добавим в него вновь созданное поле. Попро­буйте сделать это самостоятельно. Если же вы хотите сразу перейти к работе с динамическими атрибутами, просто введите в поле ввода SQL такой код:

SELECT Content, Desc, Color FROM Guestbook, Signs WHERE Sign=ID

Теперь выделим содержимое повторяющейся области страницы, щелкнув по тексту "{Guestbook. Content}", и зададим для него черный цвет. Для этого воспользуемся хорошо знакомым селектором цвета в редакторе свойств. В результате Dreamweaver поместит содержимое повторяющейся области в тег <FONT> с атрибутом color — как вы помните, именно с их помощью задается цвет текста.

Теперь выделите содержимое тега <font>, щелкнув по соответствующей кнопке секции тегов. И переключитесь в режим отображения кода. Хотя в интерактивном руководстве и описано, как привязать атрибут к полю на­бора данных в режиме отображения страницы, но почему-то в данном слу­чае Dreamweaver ведет себя очень странно. В частности, раскрывающийся список Bind То, с помощью которого и выполняется привязка поля набора данных к атрибуту тега, остается недоступным. Поэтому мы поступим иначе.

Выделите значение атрибута color тега <font>. А теперь просто перетащите на него пункт Color панели Bindings. Значение атрибута color примет такой вид (выделено полужирным шрифтом):

<FONT COLOR="<%=(Guestbook. Fields. Item("Color").Value)%>">

Код, который Dreamweaver подставил в качестве значения атрибута color, извлекает из поля color набора данных значение цвета и присваивает его атрибуту color. Как видите, все достаточно просто и, опять же, "прозрачно".

Точно таким же образом вы можете создавать другие динамические атрибу­ты. Главное — "попасть" мышью в нужный фрагмент исходного кода. Но, вероятно, вы с этим справитесь и сами.

Вот и все. Теперь можете открыть вашу страницу в Web-обозревателе и по­смотреть на получившийся результат.

Macromedia Dreamweaver MX

Заключение

"А напоследок я скажу..." — поется в старинном русском романсе. Что же мне сказать напоследок?.. Книга о Dreamweaver закончена. Я рассказал об этой программе все, что знал и что мог …

Страницы общего доступа

Страницы общего доступа предназначены для обычных посетителей сайта. Как правило, они создаются после административных страниц; в этом слу­чае вы можете использовать последние как образцы для создания "обычных" страниц. В самом …

Реализация выхода с сайта

Осталось реализовать выход с сайта — и работу над административными страницами можно считать законченной. Как вы помните, каждый посети­тель, вошедший на сайт с разграничением доступа, должен по окончании работы с …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.