Вопрос номер один, СУБД 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 "А%";
Получил данные и вывел их на страницу.. Вот так!