Всем привет. Печально, что пришлось сделать огромный перерыв в php, а он так быстро забывается... Имеется вот такая табличка: Хочу на страничце вывести сортировку всех месяцев, должно вывести примерно так: 2020-04 2020-05 (так та на самом деле хочу вывести ссылки, чтобы были вот так: Апрель 2020г. Май 2020г. вдруг кто подскажет как опитально это сделать) Но у меня выборка не происходит. Несколько лет назад возникал похожий вопрос, но там все было по другому... Одним словом попробовала вот так: PHP: $result = mysqli_query($db, "SELECT MONTH('date') 'amonth', YEAR('date') 'ayear' FROM money GROUP BY MONTH('date') ORDER BY 'amonth'")or die('error!'); while ($row = mysqli_fetch_array($result)) { echo $row['amonth'].".".$row['ayear']." - ".$row['astsum']."<br>"; } Но выводит только точку. Подскажите пожалуйста решение.
Получилось вот так: PHP: $result = mysqli_query($db, "SELECT MONTH(`date`) `amonth`,YEAR(`date`) `ayear` FROM money GROUP BY YEAR(date), MONTH(date) DESC ORDER BY `amonth` DESC")or die('error!'); while ($row = mysqli_fetch_array($result)) { echo $row['amonth'].".".$row['ayear']."<br>"; } Выводит: 5.2020 4.2020 А вот теперь самое сложное. Надо как-то дополнительно вывести Суммы на начало месяца. т.е. как-то вывести вот так: 5.2020 - На начало месяца сумма на счете равна 2000 4.2020 - На начало месяца сумма на счете равна 0 т.е. как-то в условии надо вписать сумму?
У меня получилось вот так: PHP: $result6 = mysqli_query($db, "SELECT MONTH(`date`) `amonth`,YEAR(`date`) `ayear`, SUM(`money_in`) `asin`, SUM(`money_out`) `asout` FROM money GROUP BY YEAR(date), MONTH(date) DESC ORDER BY `amonth` DESC")or die('error!'); while ($row6 = mysqli_fetch_array($result6)) { $month6 = $row6['amonth']; $result7 = mysqli_query($db, "SELECT SUM(`money_in`) `asin7`, SUM(`money_out`) `asout7` FROM money WHERE MONTH(DATE)<=$month6")or die('error7!'); $row7 = mysqli_fetch_array($result7); $sum_mon7 = $row7['asin7']-$row7['asout7']; echo $row6['amonth'].".".$row6['ayear']." Состояние счета на конец месяца: ".$sum_mon7."<br>"; } Переделала состояние счета на конец месяца. Код примитивный получился, но рабочий =)
@Valick у тебя 94 балла предупреждений за неподобающее поведение. 100 — это бан. --- Добавлено --- @Sofia я подозреваю что когда данные покрывают более одного года, сортировка по `amonth` может дать неожиданный результат. Предлагаю такой вариант: формировать строку вида 2020-04 через DATE_FORMAT() , группировать и сортировать по ней же.