Сортування результатів запитудовільному стовпцю
ЗавданняВи хочете вивести результат запиту на веб-сторінці у вигляді таблиці, що дозволяє користувачеві вибрати стовпець, за яким будуть упорядковані записи таблиці.
РішенняЗробіть заголовок кожного стовпця гіперпосиланням, що виводить таблицю, впорядковану за відповідним стовпцем.
ОбговоренняВеб-сценарій, що працює, визначає, яку дію слід зробити, запитуючи значення параметрів оточення. Зазвичай такі параметри надходять від користувача, але ніщо не заважає сценарієві самостійно додати параметри до URL. Наприклад, саме так один виклик сценарію може надсилати інформацію наступному виклику. Виходить, що сценарій взаємодіє сам із собою за допомогою URL, що генеруються для виконання певних дій. Цей прийом можна застосовувати для виведення результату запиту в такому вигляді, щоб користувач міг вибрати, яким стовпцем результату впорядковувати висновок. Заголовки стовпців перетворюються на активні посилання, які знову виводять таблицю, відсортовану за вказаним стовпцем.
Приклади розділу працюватимуть із таблицею mail:
mysql> SELECT * FROM mail;
+-----------------------+---------+--------+------ ---+---------+----------+ t srcuser srchost dstuser dsthost size +------------ -----------+---------+--------+---------+--------- +----------+ 2001-05-11 10:15:08 barb saturn tricia mars 58274 2001-05-12 12:48:13 tricia mars gene venus 194925 2001-05-12 15:02:49 phil mars phil saturn 1048 2001-05-13 13:59:18 barb saturn tricia venus 271 2001-05-14 09:31:37 0 mars 2291 2001-05-14 11:52:17 phil mars tricia saturn5781 2001-05-14 14:42:21 barb venus barb venus 98151 2001-05-14 17:03:01 tricia saturn phil venus 2394482 2001-05-15 gene mars gene saturn 3824 2001-05-15 08:50:57 phil venus phil venus 978 2001-05-15 10:25:52 gene mars tricia saturn 998535 <-> 2 :35:31 gene saturn gene mars 3856 2001-05-16 09:00:28 gene venus barb mars 613 2001-05-16 23:04:19 phil venus barb venus 10294 05-17 12:49:23 phil mars tricia saturn 873 2001-05-19 22:21:51 gene saturn gene venus 23992 +--------------- --------+---------+--------+---------+---------+-- -------+
Для отримання вмісту таблиці та його виведення у вигляді таблиці HTML можна застосовувати прийоми, описані в рецепті 17.3.
Ми будемо застосовувати ті ж способи, тільки трохи змінимо їх, щоб сформувати заголовки стовпців, по клацанню на яких таблиця впорядковується за відповідним стовпцем («click to sort»).
"Звичайна" таблиця HTML міститиме рядок заголовків стовпців, що складається тільки з імен стовпців:
Наприклад, сценарій PHP може генерувати рядок заголовків для стовпців зазначеного запиту так:
$self_path = get_self_path(); print ("
Table: " . htmlspecialchars ($tbl_name) . "
Натисніть на column name для пошуку table by that column.