- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Собсвенно сабж.
У меня есть БД MySQL с городами таком виде:
Moscow
Washington
Kiev
Manhatten
Dallas
нужно вывести сначала буквы как ссылки, а потом переходя по буквам попадать в названия городов начинающихся с этой буквы.
в личку или аську стукните - помогу.
select [поле] from [таблица] order by [поле] asc
select [поле] from [таблица] order by [поле] asc
Не то.
Предлагаю такое решение.
1. Сначала текстом выводим цикл букв английского алфавита.
2. При переходе по ссылке с буквы делаем запрос:
select [поле] from [таблица] where [поле] LIKE '$letter%' order by [поле] (asc писать не обязательно - он по-умолчанию), где $letter - буква алфавита.
3. Если число строк запроса = 0 - выводим сообщение "Городов на эту букву нет". Если > 0 - выводим циклом результаты запроса.
asc писать не обязательно - он по-умолчанию
:) <off>
в программировании и веб-дизайне вообще много чего необязательно, но ,по опыту, лучше все "необязательное" делать обязательными. Причин как минимум две - переносимость кода и ГОРАЗДО☝ меньшие усилия при отладке. Проверено.
</off>
Ребята. Спасибо большое!
Каширин, а зачем выводить те буквы, на которые нет городов? Кому нужно видеть "извнините, городов на эту букву нет". Так что одним запросом выводим только то, что есть.
Лучше так:
Вывести уникальный список первых букв городов:
select distinct(left([поле_города],1)) from [таблица] order by [поле_города]
Ну а потом уже как предлагал Каширин п.2
select distinct
Не лучше, distinct вообще очень медленно работает даже при наличии индекса. Буквы можно средствами php рисовать.
Не лучше, distinct вообще очень медленно работает даже при наличии индекса. Буквы можно средствами php рисовать.
так же как и просто селект с такими же условиями (а иногда и быстрее), а если городов меньше 500, то они скорее всего попадут в одну страницу БД и индекс вообще не будет использоваться!
Не лучше, distinct вообще очень медленно работает даже при наличии индекса. Буквы можно средствами php рисовать.
Спорно это. Конечно все зависит от размера базы ... только что проверил - на 5к записей запрос отработал 0,06 сек., на 700к - 0,2 сек. Нормально по-моему. Если городов будет много, то есть смысл крутить в пхп, только чтобы лишний раз не обращатся к базе - все равно будут города на все буквы (по теории вер.), если мало, то можно и запрашивать.