11.9. Создание разделов с информацией о путешествиях

11.9.1. Создание наборов записей из объединенных таблиц

365. Откройте файл generic_template.php. На панели инструментов присвойте странице заголовок Enisey Tours: Описания туров. На самой странице вместо заменителя заголовка поместите надпись Описания туров. Сохраните файл как tours_detail.php.

366. В первой строке области, предназначенной для отображения текста, введите Поиск туров: Описание туров. Выделите слова Поиск туров, а затем на Property Inspector прикрепите к этим словам ссылку на tours.php. Поместите курсор в конец слов Описание туров и дважды нажмите Enter, чтобы добавить две новые строки. Скопируйте строку Поиск туров и поместите ее в нижнюю строку.

367. Добавьте на страницу новый набор записей с параметрами:

Name — rs_tourDetail, Connection: conn_enisey, Table — tbl_tours, Columns — All

Требуется создать запрос, который будет извлекать из таблицы tbl_tours всю информацию для создания разделов с описанием путешествий. Одно из полей (country) содержит внешний ключ, что означает, что будет извлечено число, а не название страны, которое действительно требуется. Для извлечения этой информации будет использоваться объединение таблиц, но средствами Сказочника сделать это не возможно, так что на этом шаге создается часть SQL-запроса, которая послужит основой более сложного запроса.

368. Нажмите Advanced, в окне измените SQL-инструкцию так, чтобы она выглядела так:

SELECT *

FROM tbl_tours INNER JOIN tbl_country

ON tbl_country.countryID=tbl_tours.country

ORDER BY tbl_country.countryName

Этот код извлекает из обеих таблиц все записи и поля. При объединении двух таблиц проверяется соответствие значения поля country в таблице tbl_tours значению первичного ключа countryID в таблице tbl_countryName. Благодаря этому к каждому путешествию добавляется правильная информация о стране. Например, Аргентина и все соответствующие ей данные из таблицы tbl_country будут связаны с туром Highlights of Argentina. После объединения двух таблиц по общему полю country и/или countryID в качестве критерия для объединения, извлеченные записи сортируются по названиям стран.

370. Нажмите Test.

370. В окне Test SQL-statement посмотрите, что в столбце country содержатся только числа. Если не выполнить объединение и попытаться вывести название страны на странице с описанием путешествия, то вместо названия появится соответствующее число из этого столбца. Еще найдите countryName. В нем в алфавитном порядке перечислены все страны. Этот столбец был добавлен в набор записей благодаря объединению. Это позволяет выводить на страницу не числа, а названия стран.

371. Дважды OK. Новый набор записей отобразится на панели Bindings.