Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Алфавитный указатель

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
LoRD OF The RinG
Отправлено: 27 Мая, 2011 - 14:23:53
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Вообщем хочу сделать для списка юзеров алфавитный указатель (типо A, B, C, D, E, F, G...), но не хочется перечислять в нем весь алфавит, а хотелось бы указать только буквы, на которые есть зарегистрированые пользователи, но вот никак не могу разобраться с этим, может кто сталкивался с этим и поможет помоч

на примере попробую пояснить более подробно, вот у нас есть юзеры - Юзер и пользователь, в алфавитном указатели должны быть только буквы Ю и П
 
 Top
Мелкий Супермодератор
Отправлено: 27 Мая, 2011 - 14:31:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT substr(`username`,1,1) FROM `table` GROUP BY 1


-----
PostgreSQL DBA
 
 Top
LoRD OF The RinG
Отправлено: 27 Мая, 2011 - 14:55:44
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




спасибоУлыбка а как насчет нагрузки? если записей много? стоит ли кешировать результат?

(Отредактировано автором: 27 Мая, 2011 - 15:10:16)

 
 Top
maragon
Отправлено: 27 Мая, 2011 - 17:54:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 340
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




[quote=Мелкий][/quote]
а можно поподробнее описать sql запрос?
очень таки интересно, пока с таким не сталкивался. Хм


-----
https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
 
 Top
Мелкий Супермодератор
Отправлено: 27 Мая, 2011 - 18:19:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




LoRD OF The RinG пишет:
а как насчет нагрузки? если записей много? стоит ли кешировать результат?

Лучше измерьте результат на реальных данных, я затрудняюсь сказать.

maragon пишет:
а можно поподробнее описать sql запрос?
очень таки интересно, пока с таким не сталкивался.

substr - SQL функция для извлечения подстроки http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]#function_substr
GROUP BY 1 - группировка по первому полю запроса.


-----
PostgreSQL DBA
 
 Top
Arvaal
Отправлено: 26 Ноября, 2015 - 13:11:14
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2014  
Откуда: Лабинск, Россия


Помог: 0 раз(а)




Здравствуйте знатоки!

Никак не получается сделать алфавитный указатель для списка городов доставки СДЭК

Вот таким кодом:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header('Content-type: text/html; charset=utf-8');
  3. $xml = simplexml_load_file('http://gw.edostavka.ru:11443/pvzlist.php?cityid=');
  4. echo ('<div style="display: table;">');    
  5.     for ($i = 0; $i < count($xml->Pvz); $i++) {
  6.         echo ('<div style="display: table-cell;list-style: none;padding: 0px">');
  7.         $j = $i + ceil(count($xml->Pvz) / 3);
  8.         for (; $i < $j; $i++) {
  9.             if (isset($xml->Pvz[$i])) {
  10.                 echo ('<div style="border: 1px solid gray;padding: 8px;margin: 5px;width: 235px;">');
  11.                 echo ('<span style="font-weight: bold;font-size: 16px;">' . $xml->Pvz[$i]['City'] . '</span>');
  12.                 echo ('<br/>');
  13.                 echo ('<span>Расположен: ' . $xml->Pvz[$i]['Name'] . '</span>');
  14.                 echo ('<br/>');
  15.                 echo ('<span>Адрес: ' . $xml->Pvz[$i]['Address'] . '</span>');
  16.                 echo ('<br/>');
  17.                 echo ('<span>Телефон: ' . $xml->Pvz[$i]['Phone'] . '</span>');
  18.                 echo ('<br/>');
  19.                 echo ('<span>Время работы: ' . $xml->Pvz[$i]['WorkTime'] . '</span>');
  20.                 echo ('<br/>');
  21.                 echo ('</div>');
  22.             }
  23.         }
  24.         echo ('</div>');
  25.     }
  26. echo ('</div>');
  27. ?>


Я получаю через их апи список ПВЗ, но не могу их упорядочит таким образом:
А
Абокан, Армавир, Апшеронск, ........

Б
Барнаул, Берлин, Б....

В
Волгоград, Воронеж, В.....

Помогите пожалуйста реализовать такое.
 
 Top
Viper
Отправлено: 26 Ноября, 2015 - 22:38:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Arvaal
1. Берете русский алфавит.
2. Сравниваете по первой букве.
3. Добавляете в массив.
4. Профит...

Массив у вас вида
PHP:
скопировать код в буфер обмена
  1.         'а' => array(
  2.                 'Абокан', 'Армавир', 'Апшеронск', ...
  3.         ),
  4.         ...
  5. );

Первые буквы приводите в один регистр для сравнения. Далее обычный select с optgroup создаете в цикле.

(Отредактировано автором: 26 Ноября, 2015 - 22:38:21)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB