PDA

Показать полную графическую версию : Каталог


sadoz1
11-09-2006, 02:51
Столкнулся с задачей: необходимо создать каталог баров. На странице должна быть возможность выбора бара на определенную букву (А Б В Г Д) и т. д. (как здесь: http://www.zachot.ru). Ломаю голову над тем как лучше создать запрос к базе? Может быть кто сталкивался с подобной задачей?

mar
11-09-2006, 11:49
а в чем проблема и сложность?

sadoz1
11-09-2006, 12:51
Я не совсем понимаю как сделать запрос к базе... Т.е. как сделать выбор по нужной букве?

Prisoner
11-09-2006, 13:21
А Вам сначала надо разобраться в организации имеющейся БД (если она имеется) или же создать новую со структурой отвечающей требованиям задачи. Таким образом дело касается вопросов синтеза БД, знакомства с SQL и особенностями реальной БД с которой собираетесь вести работу. К сожалению данные вопросы носят чисто теоретический характер и требуют индивидуального внимания к ним со стороны их задающего т.е. Вас. Рекомендую обратиться к документации которой в Сети более чем достаточно. Это будет максимально эффективный способ - "хочешь что-то сделать - сделай сам".

benya
11-09-2006, 13:36
sadoz1,
Ну и что в этом сложного? Простой вариант: Создаем таблицу с буквами, А в таблице с барами добавляем ячейку (что-то типа letter_id) ссылающуюся на букву к которой будет принадлежать бар. Вуаля!

sadoz1
11-09-2006, 13:44
База проектируется с нуля. Естественно первым делом я задумался над тем как организовать вывод. Самым простым, на мой взгляд, решением было добавить еще одно поле в таблицу. Но решение мне не нравится свой не эффективностью. При добавлении новых названий придется прописывать еще и информацию о начальной букве названия. Меня интересовало, если какой-то вариант запроса SQL предлагающий более простое и эффективное решение.

benya
11-09-2006, 13:58
sadoz1,
Но решение мне не нравится свой не эффективностью.
Стандартное решение вполне нормальное.
Можно попробовать сформировать по первой букве названия (при условии что там не будет ничего кроме букв) тогда без никакиз дополнительных полей.

SELECT LEFT(name,1) AS letter FROM `bars` group by letter ORDER BY letter

Vlad Drakula
24-09-2006, 00:17
а почему просто не использоватьнеь запрос с оператором like ?

E-mail
24-09-2006, 03:46
а какая бд то?




© OSzone.net 2001-2012