Сайтостроительство (8)

PHP-кодинг (25)

Веб-дизайн (9)

DHTML/JavaScript (8)

Подкастинг (1)

Безопасность в PHP (3)

Секретный раздел

Карта блога

Регистрация пользователей на PHP+MySQL

Скрипт гостевой книги с красивым дизайном

Галерея на jQuery

Простая система регистрации пользователей на сессиях

Форма обратной связи с защитой типа капча

Галерея на php+jquery

Шаблоны запросов и placeholders

Быстрое перенаправление средствами php

Flash плеер для вашего сайта

Сортировка столбцов в таблице на php+mysql

Генератор паролей

Загрузка аватаров через систему регистрации

Вызов диалогового окна на javascript

Профессиональное РНР программирование

Исправляем 2 CSS-бага в IE6.0 c помощью fix-заплаток

За весь период

За 2010-11

За 2009-06

За 2009-05

За 2009-04

За 2009-03

За 2009-02

За 2008-08

Бегун контекстная реклама

Ruseller видеоуроки

Letitbit файлообменник

Tak.Ru $$$ вебмастеру

WMmail почтовые рассылки

WMlink продажа трафика

Sape.Ru продажа ссылок

Главная » PHP-кодинг

Сортировка столбцов в таблице на php+mysql

Для примера я взял таблицу географико-экономических характеристик субъектов СФО и их административных центров.

Демо-версия скрипта сортировки записей по столбцам

Для создания и внесения тестировочных данных выполните следующий SQL-запрос.


CREATE TABLE `sub_sfo` (
  `id` int(3) NOT NULL auto_increment,
  `sub` varchar(255) NOT NULL default '',
  `city` varchar(255) NOT NULL default '',
  `area` int(6) NOT NULL default '0',
  `nas` int(7) NOT NULL default '0',
  `vuz` int(2) NOT NULL default '0',
  PRIMARY KEY  (`id`)
);

Заполните таблицу произвольными данными.

Для вывода содержимого таблицы с возможностью этой сортировки напишем небольшой скрипт на php.


<?
include("blocks/bd.php"); //соединеняемся с БД
$s = array('sub','city','area','nas','vuz');
$key = $_GET['key'];
if(isset($key))
{
	if (!preg_match("|^[\D]+$|", $key))
	{
		exit("Error!");
	}
}
else $key = "sub";
if (isset($key) && in_array($key, $s))
{
	$result = mysql_query("SELECT * FROM sub_sfo ORDER BY ".mysql_escape_string(htmlspecialchars($key))." ASC",$db);
        if(!result) {echo "неудачный запрос";exit();}
}
else exit("неверный формат запроса!");
if (mysql_num_rows($result) > 0)
{
        $myrow = mysql_fetch_array($result,MYSQL_ASSOC);
	print "<table cellpadding=4 cellspacing=0 border=1>
	<tr>
	<td><a href=?key=sub>Субъект РФ</a></td>
	<td><a href=?key=city>Центр</a></td>
	<td><a href=?key=area>Площадь, кв.км</a<</td>
	<td><a href=?key=nas>Население, чел.</a></td>
	<td><a href=?key=vuz>Вузов</a></td></tr>";
   do 
    {
           printf ("<tr><td>%s</td>
           <td>%s</td><td>%s</td><td>%s</td>
           <td>%s</td></tr>", $myrow["sub"],$myrow["city"],$myrow["area"], $myrow["nas"],$myrow["vuz"]);
    }
    while ($myrow = mysql_fetch_array($result,MYSQL_ASSOC));
    print "</table>";
}
else
{
        echo "таблица пуста";
        exit();
}
?>

В качестве ключа для сортировки используем поле $key, значение которого по умолчанию устанавливаем в "sub", то есть сортируем по субъекту округа.

Соответствующий запрос на сортировку записей будет выполняться только в том случае, если в массиве $s существуют строковые значения параметра $key, передаваемого через адресную строку

Обратите внимание, что сортировка строковых данных осуществляется лексикографически, т.е. по алфавиту (от А до Я). Числовые данные сортируются по убыванию от меньшего к большему. Сам принцип сортировки заключается в единственном запросе, в котором мы извлекаем все поля в таблице в порядке: ORDER BY '".$key."' ASC, то есть в порядке убывания записей по значению поля $key, значение которого указывается в ссылках, которые являются названиями столбцов в таблице `sub_sfo`.

  • ?key=sub - по субъекту
  • ?key=city - по городу
  • ?key=area - по площади
  • ?key=nas - по населению
  • ?key=vuz - по числу вузов

Вывод записей в таблицу осуществляется стандартными средствами с помощью цикла do {...} while. Очень простой скриптик. Пользуйтесь!

Комментировать

Автор: admin | Добавлена: 26.05.2009 | Просмотров: 16562
Рейтинг: 15 | Голосов: 14

Оцените заметку: 1 2 3 4 5

Последние обновления в категории: PHP-кодинг

Комментарии (0)

Комментариев пока нет!

Только авторизованные пользователи могут добавлять комментарии. Зарегистрироваться.

Логин:
Пароль:
 

Регистрация

: Тема:

Заметок в базе: 56
Комментариев: 0
Всего юзеров: 114
Сейчас онлайн: 3