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]   

> Описание: php sql
Грачи прилетели
Отправлено: 01 Июня, 2015 - 11:09:14
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


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




Добрый день!

Прошу помощи.

Делаю сводную итоговую таблицу, в которой вывожу данные из нескольких таблиц.

Пользователь (table2.fio as fio) | Задания (table1.name as pr_name) | Часов (SUM(table2.chas_fact) as chas_fact)

SQL запрос

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. $sql="SELECT
  4. table1.name as pr_name,
  5. table2.day,
  6. table2.fio as fio,
  7. SUM(table2.chas_fact) as chas_fact
  8.  
  9. FROM table1, table2, table3
  10.  
  11. WHERE table1.id = table2.id_table1 AND table2.fio = table3.fio AND table2.day BETWEEN ('".$data_1."') AND ('".$data_2."')
  12.  
  13. GROUP BY fio ";
  14.  
  15.  


Вывожу данные в таблицу
CODE (htmlphp):
скопировать код в буфер обмена
  1. <tr>
  2. <td><?php echo $Arr['fio'];?></td>
  3. <td>Перечислить все названия Заданий -  table1.name as pr_name</td>
  4. <td><?php echo $Arr['chas_fact'];?></td>
  5. </tr>


При моем запросе, выводит только одно значение table1.name as pr_name. Как мне правильно перестроить свой запрос, чтобы смог в этом поле перечислить все значения? Надо делать какой-то вложенный запрос в sql?
 
 Top
LIME
Отправлено: 01 Июня, 2015 - 12:21:52
Post Id


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


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


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




Если ты агрегируешь время по этим самым заданиям то лучше сортировать а не групировать и время накапливать в скрипте
 
 Top
Грачи прилетели
Отправлено: 01 Июня, 2015 - 13:52:16
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


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




т.е. убрать из SELECT
SUM

и GROUP BY/ Тогда получу полный список всего и мне надо будет потом пройтись по массиву данных и просуммировать переменные в chas_fact
и сгруппировать по двум другим полям, так?
Как это правильно сделать. можно пример какой-нибудь показать, не понимаю как в цикл другой вставить.
Спасибо!
 
 Top
LIME
Отправлено: 01 Июня, 2015 - 15:06:05
Post Id


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


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


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




Лучше сделай 2 запроса
В одном бери данные в другом агрегируй время
Все данные клади в массив под ключем пользователя
 
 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