Общие > Базы данных
Помогите с навигацией при постраничным выводом из базы.
Dansmir:
Нужно сделать постраничный вывод из базы в алфавитном порядке, тоесть навигация типа
[A] [C] ...
Причем если в базе нет даных на какую то букву ее не должно быть в навигации( или неактивна ).
Подскажите каким образом можно сделать такую навигацию.
html_coder:
Вопрос номер один, СУБД MySQL?
Вопрос номер два, в базе ориентрироваться накое то одно поле надо, али как?
Пример для MySQL
Допустим есть таблица words с полем типа varchar word
word
____
Анна
Петя
Вова
Иван
Боря
...
____
Таким запросом выдираешь буквы, имеющиеся в этом поле причём каждую букву только один раз
SELECT
DISTINCT
SUBSTRING(word FROM 1 FOR 1) as letter
FROM
`words`;
В массиве хранишь все буквы русского алфавита, т.е. для того чтобы тебе вывести листинг, тебе просто надо пройтись в цикле по твоему массиву, плюс в отдельном массиве хранить те буквы, которые получил из базы, идёшь по циклу по массиву со всем алафавитом и проверяешь есть буква в массиве с данными полученными из базы, если есть то делаешь ссылкой, нет выводишь просто текстом.
ссылки будут с параметром, через который ты и будешь получать букву, т.е например так href="bla.html?letter=А",
Ну а дальше всё просто получил букву в скрипте, сделал примерно такой запрос к базе
SELECT
*
FROM
`words`
WHERE word LIKE "А%";
Получил данные и вывел их на страницу.. Вот так!
AlieN:
SELECT COUNT(*) FROM TABLE WHERE LOWER(`word`) LIKE LOWER("a%");
html_coder:
AlieN
А при чём тут COUNT?
hanslinger:
И что получится при
--- Код: ---LOWER("a%")
--- Конец кода ---
тоже интересно =)))
Навигация
Перейти к полной версии