Алфавитный вывод букв (каталог)

Izrael

Гуру форума
Регистрация
11 Фев 2008
Сообщения
514
Реакции
65
Добрый день, может есть готовые решения . Задача такая мне нужно увидеть пример скрипта который будет выводить алфавитный каталог типо. А.Б.В.Г.Д . При нажатии на букву должна открываться страница с инфой, в моём случае я собираюсь так выодить города.. Допустим (Москва, Минеральные Воды, Минск итд... это если нажмем на букву М )
 
Циклом на странице выводите буквы (да хоть руками), делаете путь согласно вашему скрипту (например example.com/blalbalba.php?cat=Z). В blalbalba.php получаете $_GET['cat'], и составляете запрос к базе к табличке (не забыв защитится от sql inj), где хранятся города используя оператор Для просмотра ссылки Войди или Зарегистрируйся
 
готовых решений куча, но как правило это плагины/модули для каких-либо движков
если пишется что-то свое, то общий алгоритм примерно такой:
0. получаем нужную букву, например так
Код:
$letter = $_GET[letter];
1. не забываем про пагинацию, поэтому сразу же получаем нужную страницу, например так
Код:
 $page = $_GET[page];
2. приводим букву к нужному регистру, нужной кодировке, возможно еще чему-то нужному (например если это каталог фирм то есть смысл почекать на скобки, кавычки, символы вроде "ООО" и прочую лабуду)... с городами вроде как должно быть проще, но все равно не забываем о безопасности
3. определяемся как будем искать - либо по первой букве в названию (тогда в запросе будет LIKE), либо по отдельному полю, в котором будет прописана буква
второй вариант будет работать быстрее, но придется изменять добавление городов - т.е. при добавлении, к примеру "москва" в доп. поле придется дописать букву "м"
4. когда определились, делаем запрос
если выбрали первый вариант то примерно такой
Код:
 SELECT blablabla FROM table WHERE city LIKE ' $letter%' LIMIT $page, 10
если выбрали второй вариант то примерно такой
Код:
 SELECT blablabla FROM table WHERE cityletter ='$letter' LIMIT $page, 10
в примере
blablabla = нужная нам инфа
city = города
cityletter = поле с буквами
5. собсно и выводим наше blablabla

6, 7, 8 и так далее
по мере желания добавляем необходимые навороты - например делаем ЧПУ, кеширование для запросов/результатов, и т.д.
 
Назад
Сверху