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]   

> Без описания
kuller
Отправлено: 29 Мая, 2016 - 21:56:23
Post Id



Частый посетитель


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


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




делаю списки по алфавиту в котором должны отображаться города. Есть следующий код

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $SqlCity = $db->query("SELECT * FROM ".PREFIX."_city ORDER BY name");
  5. $result = $db->super_query("SELECT COUNT(*) as count FROM ".PREFIX."_city");
  6.  
  7. if($result['count'] > 0)
  8. {
  9.         $alphabet = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','ъ','Ы','Ь','Э','Ю','Я');
  10.        
  11.         foreach($alphabet as $val)
  12.         {
  13.                 for($i = 0; $i < $result['count']; $i++)
  14.                 {
  15.                         $cityRow = $db->get_row($SqlCity);
  16.                         $count = $i + 1; //выставляем счетчик, который будет показывать нам в какой из 5-х столбцов выводить информацию
  17.                        
  18.                         $t = mb_substr($cityRow['name'], 0,1, 'UTF-8');
  19.                        
  20.                         if($count % 5 == 1 AND $val == $t)
  21.                         {
  22.                                 $a .= '<ul class="letter_list"><li>'.$cityRow['name'].'</li></ul>';
  23.                         }
  24.                        
  25.                         else if($count % 5 == 2 AND $val == $t)
  26.                         {
  27.                                 $a .= '<ul class="letter_list"><li>'.$cityRow['name'].'</li></ul>';
  28.                         }
  29.                        
  30.                         else if($count % 5 == 3 AND $val == $t)
  31.                         {
  32.                                 $a .= '<ul class="letter_list"><li>'.$cityRow['name'].'</li></ul>';
  33.                         }
  34.                        
  35.                         else if($count % 5 == 4 AND $val == $t)
  36.                         {
  37.                                 $a .= '<ul class="letter_list"><li>'.$cityRow['name'].'</li></ul>';
  38.                         }
  39.                        
  40.                         else if($count % 5 == 0 AND $val == $t)
  41.                         {
  42.                                 $a .= '<ul class="letter_list"><li>'.$cityRow['name'].'</li></ul>';
  43.                         }
  44.                 }
  45.                
  46.                 if($val == 'А')
  47.                 {
  48.                         echo '<ul class="ul_group"><li class="li_subgroup"><span class="letter">'.$val.'</span>'.$a.'</li></ul>';
  49.                 }
  50.                
  51.                 if($val == 'Б')
  52.                 {
  53.                         echo '<ul class="ul_group"><li class="li_subgroup"><span class="letter">'.$val.'</span>'.$a.'</li></ul>';
  54.                 }
  55.         }
  56. }
  57.  
  58. ?>
  59.  


в результате отображается два столбца "А" и "Б" а вот содержимое их с одинаковыми городами. Почему так получается не могу понять... помогите пожалуйста...
Если не понятно что в результате должно быть, прикрепляю скрин, того что надо получить.
Прикреплено изображение (Нажмите для увеличения)
2016-05-29_21-58-05.png
 
 Top
Viper
Отправлено: 29 Мая, 2016 - 23:45:39
Post Id



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


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


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




для примера
PHP:
скопировать код в буфер обмена
  1. $array1 = array(
  2.         'А',
  3.         'Б',
  4. );
  5. $array2 = array(
  6.         'А1',
  7.         'А2',
  8.         'А3',
  9.         'А4',
  10.         'А5',
  11.         'Б1',
  12.         'Б2',
  13.         'Б3',
  14.         'Б4',
  15.         'Б5',
  16. );
  17.  
  18. foreach ($array1 as $letter) {
  19.         echo $letter.'<br/>';
  20.  
  21.         foreach ($array2 as $city) {
  22.                 if (mb_substr($city, 0, 1) == $letter) {
  23.                         echo $city.'<br/>';
  24.                 }
  25.         }
  26. }


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
kuller
Отправлено: 30 Мая, 2016 - 00:08:36
Post Id



Частый посетитель


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


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




для чего массив $array2 ? типа города что ли? если да, тогда данный пример просто алфавит выводит, а города нет....

Все понял!!! у меня сайт в кодировке utf-8, вот и не показывало города ))) Все работает!!! Спасибо!!!

(Отредактировано автором: 30 Мая, 2016 - 00:11:58)

 
 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