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 :: Вывести значения из таблицы циклом, сортируя по нужному полю [2]

 PHP.SU

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


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

> Описание: php / mysql
Heavenanvil
Отправлено: 08 Февраля, 2017 - 15:40:29
Post Id


Частый гость


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


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




andrewkard, практически идеально.

Единственное, что мне нужно выводить не id_cat, а name_cat.

Для категорий у меня изменить получилось:

PHP:
скопировать код в буфер обмена
  1. foreach($rows as $row){
  2.     if(empty($row['parent'])){
  3.         $data[$row['id_cat']] = array();
  4.     }
  5. }
  6. foreach($rows as $row){
  7.     if(isset($data[$row['parent']])){
  8.     //было $data[$row['parent']][] = $row['id_cat'];
  9.            $data[$row['parent']][] = $row['name_cat'];
  10.     }
  11. }

А вот для родительских разделов, такой фокус не работает :(

(Отредактировано автором: 08 Февраля, 2017 - 15:51:22)

 
 Top
andrewkard
Отправлено: 08 Февраля, 2017 - 16:38:43
Post Id


Участник


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


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




Увеличьте размерность массива $data[$row['id_cat']] , добавьте ключи name и items
 
 Top
Heavenanvil
Отправлено: 08 Февраля, 2017 - 16:58:57
Post Id


Частый гость


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


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




Извините? ))

Я правильно понял, что нужно изменить строку:


Пока не разобрался, как добавлять ключи в массив, но почему name и items, когда нужно name_cat?
 
 Top
andrewkard
Отправлено: 08 Февраля, 2017 - 17:02:44
Post Id


Участник


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($rows as $row){
  3.             if(empty($row['parent'])){
  4.                 $data[$row['id_cat']] = array(
  5.                     'name' => $row['name_cat'],
  6.                     'items' => array(),
  7.                 );
  8.             }
  9.         }
  10.         foreach($rows as $row){
  11.             if(isset($data[$row['parent']])){
  12.                 $data[$row['parent']]['items'][] = $row['name_cat'];
  13.             }
  14.         }
  15.  

(Добавление)
и далее тоже нужно будет подправить, думаю уже разберетесь.
 
 Top
Heavenanvil
Отправлено: 08 Февраля, 2017 - 17:22:28
Post Id


Частый гость


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


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




Да, что же это ((
Трудно быть тупым. ЧСВ падает с каждым вашим постом ))

Подскажите пожалуйста, что ещё нужно менять?
 
 Top
andrewkard
Отправлено: 08 Февраля, 2017 - 17:28:23
Post Id


Участник


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($rows as $row){
  3.     if(empty($row['parent'])){
  4.         $data[$row['id_cat']] = array(
  5.             'name' => '',
  6.             'items' => array(),
  7.         );
  8.     }
  9. }
  10. foreach($rows as $row){
  11.     if(isset($data[$row['parent']])){
  12.         $data[$row['parent']]['items'][] = $row['name_cat'];
  13.     }
  14. }
  15. ?>
  16. <ul class="1">
  17.         <?PHP foreach($data as $main){?>
  18.             <li>
  19.                 <div class="2"><?=$main['name']?></div>
  20.                 <div class="3">
  21.                     <?PHP foreach($main['items'] as $category){?>
  22.                         <a href="#" class="4">Категория <?=$category?></a>
  23.                     <?PHP } ?>
  24.                 </div>
  25.             </li>
  26.         <?PHP } ?>
  27.     </ul>
  28.  
  29.  
 
 Top
Heavenanvil
Отправлено: 08 Февраля, 2017 - 17:33:46
Post Id


Частый гость


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


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




andrewkard, слава тебе господи. Всё получилось.

Признаюсь, товарищи стыдно. Всё приготовили, разжевали и ещё в рот положили.

Учиться, учиться и ещё раз учиться.

Спасибо.
 
 Top
haveFun
Отправлено: 09 Февраля, 2017 - 09:39:34
Post Id



Гость


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


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




у вас абсолютно неправильная организация в бд.
не храните в одной таблице категории и разделы. разнесите их по разным таблицам.
 
 Top
Heavenanvil
Отправлено: 09 Февраля, 2017 - 09:43:20
Post Id


Частый гость


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


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




haveFun, что конкретно мне даст раздельное хранение категорий и разделов?
Более простой запрос в коде, вероятно.
 
 Top
haveFun
Отправлено: 09 Февраля, 2017 - 10:31:41
Post Id



Гость


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


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




как понять что? это две разные сущности.
разные сущности нужно хранить в разных таблицах. всегда.
делаете два селекта, два форича, и вуаля. все прозрачно и очевидно.
 
 Top
Heavenanvil
Отправлено: 09 Февраля, 2017 - 10:37:02
Post Id


Частый гость


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


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




haveFun, спасибо. Учту.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB