Сортировка по времени и вывод на экран

103
14 ноября 2021, 09:50

Проблема следующего характера: есть таблица, в ней три колонки id, name, time (в формате time()), station_id.

Нужно: отсортировать все строки по дате времени и вывести на экран в следующем формате:

1-09
нейм 
нейм1
неймм999
2-09
нейм
нейм9999

Но у меня что-то не выходит. Выводит только 1 дату, хотя есть и другие. Код:

$q = DB::$dbs->query("SELECT `time`, group_concat(name) AS name FROM tables WHERE station_id = '100' order BY time DESC");
$q->execute();
while($list = $q->fetch())
{
    echo date('d-m-Y', $list['time']);
    $name= explode(',', $list['name'] );
    for ($count = 0; $count <= count($name)-1; $count++) {
        echo $name[$count].'<br />';
    }
}
Answer 1

Использование агрегатных функций без группировки приводит к тому, что они работают по всем отобранным записям, возвращая один результат

SELECT `time`, group_concat(name) AS name 
   FROM tables 
   WHERE station_id = '100' 
   group by time
   order BY time DESC

Такой запрос соберет имена для каждого времени

READ ALSO
Как установить php 5.5 на centos 7

Как установить php 5.5 на centos 7

Купил VPSСтоит CENTOS 7 + VestaCP

83
Ошибка переноса проекта

Ошибка переноса проекта

Перенёс проект из репозитория на компьютерПосле переноса всплывает ошибка

274
Почему Getter возращает 0

Почему Getter возращает 0

Есть два класса MainActivity и results

214