Сортировать по алфавиту

Рома

был тут
Сортировать по алфавиту

Есть куча записей, нужно вывести вверху страницы строку букв "А...Я", пользователь кликает по соотв букве и ему выдается список записей, начинающихся на эту букву.

Я тут покапался и нашел вот что:
SЕLECT ... FROM table LIKE 'a%';

SELECT ... FROM table WHERE SUBSTRING(field1,1,1) ='a';

Но возникает вопрос.

НЕ Нужно выводить ссылку, если нет записей начинающихся на эту букву, так вот как это сделать? Ведь если писать ссылки руками, то нельзя будет проверить есть записи, начинаюшиеся на эту букву или нет, а вывести список букв в рыл тайме для меня проблема, не возиться же с chr'ами, может есть более простое решение проблемы?
 

RomikChef

Guest
select distinct LOWER(SUBSTRING(field1,1,1)) as letter from table
while ($row=mysql_fetch_array($res)) $letters[$row['letter']]=1;

for ($i='а';$i<='я';$i++) {
if ($letters[$i]) echo 'hyperlinked'; else echo 'naked';
}
 

RomikChef

Guest
А чего непонятного?
запрашиваем первые буквы всех записей этой колонки. причем дистинкт указывает на то, чтобы были только уникальные буквы.
Затем загоняем их в ассоциатиынй массив, где ключ - эта буква, а значение - 1.
потом в цикле перебираем все буквы алфавита (ну, чтобы вывести).
И проверяем - если есть в массиве такой элемент - выводим гиперссылку, а если нет - то нет.
 
Сверху