- •Практический раздел содержание
- •Лабораторная работа №1
- •Основные понятия диаграмм классов uml
- •Классы, атрибуты, операции
- •Категории связей. Связь-зависимость
- •Связи-обобщения и механизм наследования классов в uml
- •Связи-ассоциации: роли, кратность, агрегация
- •Получение схемы реляционной базы данных из диаграммы классов uml
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •3Апрос 6-2-1
- •3Апрос 6-2-2
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Создание макроса
- •Сведения о построителе макросов
- •Создание изолированного макроса
- •Создание группы макросов
- •Создание внедренного макроса
- •Изменение макроса
- •Использование условий для контроля за действиями макроса
- •Примеры условных выражений в макросах
- •Лабораторная работа №9
- •Описание
- •Порядок обработки элементов оператора select:
- •Конструкция where
- •Конструкция group by
- •Конструкция having
- •Конструкция order by
- •Seller (Продавцы)
- •Sale (Продажи)
- •Supplier (Поставщики)
- •Goods (Товары)
- •Model (Модели)
- •Custom (Заказ)
- •Простые запросы
- •Агрегатные функции
- •Лабораторная работа №10
- •Многотабличные запросы
- •Примеры многотабличных запросов
- •Подзапросы и многотабличные запросы
- •Лабораторная работа №11
- •Операторы манипулирования данными
- •Лабораторная работа №12
- •Лабораторная работа №13
- •Примеры
- •Синтаксис
- •Примеры
- •Лабораторная работа №14
- •Лабораторная работа №15
- •Лабораторная работа №16
- •Лабораторная работа №17
- •Лабораторная работа №18
- •Лабораторная работа №19
- •Работа с данными
- •Состояния и режимы набора данных
- •Поля и класс tField
- •Типы полей и типы данных
- •Сортировка
- •Навигация
- •Фильтрация
- •Редактирование
- •Добавление и удаление
- •Лабораторная работа №20
- •Лабораторная работа №21
- •Лабораторная работа №22
- •Лабораторная работа №23
- •Компонент dbCtrlGrid
- •Лабораторная работа №24
- •Импорт информации из Delphi в Word
- •1. Как определить установлен ли Excel
- •2. Как определить запущен ли Excel
- •3. Как вывести данные в Excel
- •Лабораторная работа №25
- •Поиск и фильтрация данных в Delphi
- •Общие положения
- •Поиск данных
- •Лабораторная работа №26
- •Лабораторная работа №27
- •Отчеты в Delphi
- •Лабораторная работа №28
- •Лабораторная работа №29
- •Лабораторная работа №30
- •Лабораторная работа №31
- •Лабораторная работа №32
- •Стандартные функции php для работы с MySql
- •Пример простейшей поисковой системы на php
- •Сортировка таблиц
- •Лабораторная работа №33
- •Работа с соединениями
- •Постоянные соединения с базами данных
- •Лабораторная работа №34
- •Создание бд и таблиц
- •Создание бд и таблиц с помощью php
- •Создание бд и таблиц с использованием phpMyAdmin
- •Лабораторная работа №35
- •Лабораторная работа №36
- •Применение информации о структуре таблицы
- •Лабораторная работа №37
- •Лабораторная работа №39
- •Роль сервера приложений: Настройка сервера приложений
- •Предварительная подготовка
- •Настройка сервера приложений
- •Параметры сервера приложений
- •Сводка выбранных параметров
- •Завершение работы мастера настройки сервера
- •Удаление роли сервера приложений
- •Дальнейшие действия: выполнение дополнительных задач
- •Подготовка данных для сервера приложений
- •Создание сервера приложений
- •Лабораторная работа №40
- •Создание локального клиентского приложения (на том же пк, что и сервер)
- •Удаленный клиент с использованием olEnterprise
- •Об удаленном клиенте с использованием dcom
- •Удаленный клиент с использованием ActiveForm
Сортировка таблиц
При выводе данных из базы необходимо предусмотреть возможность их сортировки по различным критериям. В качестве примера рассмотрим результаты, выведенные нашей поисковой системой, -- обратим особое внимание на следующие после заголовка Order History: (История заказов). Допустим, список получился очень длинным, и вы хотите отсортировать данные по идентификатору товара (или идентификатору заказа). Чтобы вы лучше поняли, о чем идет речь, рекомендую посетить один из моих любимых сайтов, http://download.cnet.com. Если в процессе просмотра программ конкретной категории щелкнуть на заголовке столбца (название, дата размещения, количество загрузок или размер файла), то список автоматически упорядочивается по содержимому указанного столбца. Далее показано, как реализовать подобную возможность.
В листинге 32.6 мы производим выборку данных из таблицы orders. По умолчанию данные сортируются по убыванию объема заказа (поле quantity). Однако щелчок на любом заголовке таблицы приводит к тому, что страница загружается заново с упорядочением таблицы по указанному столбцу.
Листинг 32.6. Сортировка таблиц (tablesorter.php)
<?
// Подключиться к серверу MySQL и выбрать базу данных
@mysql_connect("localhost". "web", "ffttss")
or die("Could not connect to MySQL server!");
@mysql_select_db( "company")
or die("Could not select company database!");
// Если значение переменной $key не задано, по умолчанию
// используется значение 'quantity' if (! isset($key)) :
$key = "quantity"; endif;
// Создать и выполнить запрос.
// Выбранные данные сортируются по убыванию столбца $key
$query = "SELECT order_id, cust_id, prod_id, quantity FROM orders ORDER BY $key DESC" $result = mysql_query($query);
// Создать заголовок таблицы
print "<table border = 1>";
print "<tr>
<th><a href=\"Listing11-6.php?key=order_id\">Order ID</a></th>
<th><a href=\"Listing11-6.php?key=cust_id\">Customer ID</a></th>
<th><a href=\"Listing11-6.php?key=prod_id\">Product ID</a></th>
<th><a href=\"Listing11-6.php?key=quantity\">Quantity</a>
</th></tr>";
// Отформатировать и вывести каждую строку таблицы
while (list($order_id,$cust_id,$prod_id, $quantity)
= mysql_fetch_row($result)) :
print "<tr>";
print "<td>$order_id</td><td>$cust_id</td><td>$prod_id</td><td>
$quantity</td>";
print "</tr>";
endwhile; // Завершить таблицу
print "</table>";
Для базы данных company, изображенной на рис. 32.1, стандартные выходные данные листинга 32.6 выглядят следующим образом:
-
Order ID
Customer ID
Product ID
Quantity
100003
2000cu
1000pr
12
100005
2000cu
1002pr
11
100004
2000cu
1000pr
9
100002
2000cu
1001pr
5
100001
2000cu
1002pr
3
Обратите внимание: заголовки таблицы представляют собой гиперссылки. Поскольку по умолчанию сортировка осуществляется по полю quantity, записи отсортированы по убыванию последнего столбца. Если щелкнуть на ссылке Order_ID, страница загружается заново, но на этот раз записи сортируются по убыванию идентификатора заказа. Таблица будет выглядеть так:
-
Order ID
Customer ID
Product ID
Quantity
100005
2000cu
1002pr
11
100004
2000cu
1000pr
9
100003
2000cu
1000pr
12
100002
2000cu
1001pr
5
100001
2000cu
1002pr
3
Сортировка выходных данных приносит огромную пользу при форматировании баз данных. Простая модификация запроса SELECT позволяет упорядочить данные по любому критерию – по возрастанию, по убыванию или с группировкой записей.
На этом наше знакомство с MySQL подходит к концу. Учтите, что материал этой главы отнюдь не исчерпывает всего, что необходимо знать о MySQL. Полный список команд MySQL в PHP приведен в документации ( http://www.php.net/manuat ).
СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Изучить теоретические введения.
Инсталлировать MySQL для создания и работы с БД.
Создать новый проект.
Разработать web-страницу с использованием языка PHP/
В проекте необходимо выполнить различные действия с манипулированием переменными.
Использовать условные операторы, операторы выбора и операторы цикла.
Проверить работоспособность проекта.
Продемонстрировать преподавателю работу разработанного образца проекта.
Получить от преподавателя индивидуальное задание и создать проект (по аналогии) для выполнения индивидуального задания.
Подготовиться к защите лабораторной работы, которая включает в себя демонстрацию индивидуального варианта, защиту по контрольным вопросам теоретической части работы.
Вопросы выходного контроля:
Расскажите, для чего используется язык PHP.
Расскажите о переменных и их использовании в PHP.
Назовите типы данных.
Опишите синтаксис условного оператора и оператора выбора.
Опишите синтаксис операторов цикла.
