Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Каталог (http://forum.oszone.net/showthread.php?t=71108)

sadoz1 11-09-2006 02:51 483256

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

mar 11-09-2006 11:49 483419

а в чем проблема и сложность?

sadoz1 11-09-2006 12:51 483442

Я не совсем понимаю как сделать запрос к базе... Т.е. как сделать выбор по нужной букве?

Prisoner 11-09-2006 13:21 483451

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

benya 11-09-2006 13:36 483461

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

sadoz1 11-09-2006 13:44 483465

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

benya 11-09-2006 13:58 483474

sadoz1,
Цитата:

Но решение мне не нравится свой не эффективностью.
Стандартное решение вполне нормальное.
Можно попробовать сформировать по первой букве названия (при условии что там не будет ничего кроме букв) тогда без никакиз дополнительных полей.
Код:

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

Vlad Drakula 24-09-2006 00:17 488732

а почему просто не использоватьнеь запрос с оператором like ?

E-mail 24-09-2006 03:46 488770

а какая бд то?


Время: 09:23.

Время: 09:23.
© OSzone.net 2001-