Как объединить повторяющее значение переменных?

Есть запрос, который выводит назначенные задания каждого отдела. Суть в том, что сейчас каждое задание отображается как в отдельном отделе. (результат скрин 1).6993fe9545224439b5656a199c6803f7.PNGНеобходима помощь, в изменении запроса в вид(скрин 2). 4d8723929cec45c8a8f003e6c8027ae6.png Пробовал изменить запрос на
$tablev = mysql_query ("SELECT * 
FROM tasks
INNER JOIN department ON tasks.id_dep_tas=department.id_dep  GROUP BY department.titli_dep AND id_oper_tas=$id_oper",$db);
В итоге получился вывод заданий только по одному на отдел(результат скрин 3)f1f3b72d95a549a6aa9dc65f7f599969.PNG
$tablev = mysql_query ("SELECT * 
FROM tasks
INNER JOIN department ON tasks.id_dep_tas=department.id_dep AND id_oper_tas=$id_oper ",$db);
if(!$tablev)
{echo "Оперативок в базе нет"; }
else
{
  if(mysql_num_rows($tablev) > 0)
  {
    echo "";
    $b = 0;
    while ($logic = mysql_fetch_array($tablev))
    {
      $b++;
echo "
	<tr>
		<td class='headline' colspan='8'>{$logic['titli_dep']}</td>
	</tr>
	<tr>
		<td align='center'>$b</td>
		<td>{$logic['name_tas']}</td>
		<td>{$logic['data_zad_tas']}</td>
		<td>{$logic['data_exe_tas']}</td>
		<td>{$logic['doer_tas']}</td>
		<td>{$logic['rubric_tas']}</td>
		<td><input type='checkbox' checked='checked'>{data}</td>
		<td><button>Ред.</button></td>
	</tr>
";
}
}
}
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
Ответа здесь не будет, но будет небольшой совет. Шарахните себя линейкой по рукам за прямые запросы в базу и разберитесь немного с хранимыми процедурами. А заодно вместо звездочки приучайтесь писать весь набор столбцов. При Join разных сущностей есть риск склеить различные таблицы с одинаковыми полями,но разными значениями. Также возможно вы будете тащить из базы данные которые вам не нужны, что приведет к лишней нагрузке на БД.
Ответ написан
Комментировать
svd71
@svd71
ваша проба не засчитана: group by идет перед частью условия из where. Для счастья перенесите в конец:SELECT department.titli_dep
FROM tasks
INNER JOIN department ON tasks.id_dep_tas=department.id_dep AND id_oper_tas=$id_oper GROUP BY department.titli_dep

Во вторых при группировке нужно указывать все столбцы, по каким проводится группировка и столбцы тля агрегатной обработки. Так что "*" в запросе не тянет.

ПС: для поставленной задачи вы можете вынести такую группировку во view (проекцию) и потом джойнить запрос к ней с другоми таблицами для вывода нужных данных. Или ломать голову с вложенными запросами. Решение не единственное.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы