Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 28.04.2018
Сообщений: 4

Подсчет всех строк из БД за каждый месяц

28.04.2018, 06:42. Показов 1291. Ответов 5

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, хочу сделать подсчет всех строк за каждый месяц из MySQL

В таблице MySQL есть поле "p_date" со значениями вида "2018-04-26 06:25:05"
Необходимо посчитать количество всех строк, и написать сколько всего было строк за каждый месяц.

Через phpmyadmin выполняю запрос к БД

MySQL
1
SELECT MONTHNAME(p_date),COUNT(*) FROM tasks_log_sv GROUP BY MONTHNAME(p_date)
Вывод:
MySQL
1
2
3
4
5
MONTHNAME(p_date)   COUNT(*)
April                 5510
February             4302
January               5241
March                 4886
Выводит то, что нужно.

Пытаюсь сделать вывод на PHP:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$hostname="localhost";
$username="print";
$password="print";
$db = "stat";
 
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
 
$data = $dbh->query('SELECT MONTHNAME(p_date),COUNT(*) FROM tasks_log_sv GROUP BY MONTHNAME(p_date)');
 
 
$result = $data->fetchAll(PDO::FETCH_ASSOC);
 
print_r($result);
 
foreach($result as $output) {
 
echo output['p_data'] . " " . output['p_data'] . "<br />";
}
?>
Вывод:

Code
1
2
3
4
Array ( [0] => Array ( [MONTHNAME(p_date)] => April [COUNT(*)] => 5510 ) [1] => Array ( [MONTHNAME(p_date)] => February [COUNT(*)] => 4302 ) [2] => Array ( [MONTHNAME(p_date)] => January [COUNT(*)] => 5241 ) [3] => Array ( [MONTHNAME(p_date)] => March [COUNT(*)] => 4886 ) ) o o
o o
o o
o o
Как можно корректно сделать вывод? Спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2018, 06:42
Ответы с готовыми решениями:

Определить наибольшие прибыли среди всех фирм за каждый месяц и вывести их указав номер фирмы и номер месяца
Двумерная матрица задается с клавиатуры. Помогите пожалуйста.

Подсчет общего количества строк всех текстовых файлов
Написать командный файл который подсчитывает общее колличество строк во всех текстовых файлах текущего каталога. Создавайте темы с...

подскажите как можно сформировать список всех сотрудников за прошлый месяц,но не добавленных ещё в следующий месяц
подскажите как можно сформировать список всех сотрудников за прошлый месяц,но не добавленных ещё в следующий месяц. так манипулирование с...

5
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
28.04.2018, 08:55
Лучший ответ Сообщение было отмечено regs2006 как решение

Решение

PHP
1
2
foreach($result as $output)
    echo $output['MONTHNAME(p_date)'] . ' | ' . $output['COUNT(*)'] . '<br>';
1
0 / 0 / 0
Регистрация: 28.04.2018
Сообщений: 4
28.04.2018, 10:07  [ТС]
Jodah, Спасибо большое! Заработало
А как-то можно еще вытянуть из даты год и вставить его перед месяцем?

Добавлено через 20 минут
А все, разобрался. Надо было добавить:

MySQL
1
SELECT YEAR(p_date), MONTHNAME(p_date),COUNT(*) FROM tasks_log_sv GROUP BY MONTHNAME(p_date),YEAR(p_date)
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
28.04.2018, 10:08
regs2006,
SQL
1
SELECT YEAR("2012-08-19"); //Результат "2012"
1
 Аватар для koders
259 / 193 / 50
Регистрация: 15.07.2016
Сообщений: 649
28.04.2018, 10:10
SQL
1
SELECT LEFT(p_date, 4) AS YEAR, YEAR(p_date), ...
1
0 / 0 / 0
Регистрация: 28.04.2018
Сообщений: 4
28.04.2018, 10:36  [ТС]
И последний вопрос.
Теперь это надо отсортировать по дате
т.е. привести к виду

2017 March
2017 April
2018 Febraury
2018 September
2019 November

с помощью
MySQL
1
ORDER
не получилось


Добавлено через 1 минуту
с помощью
MySQL
1
GROUP BY YEAR(p_date), MONTHNAME(p_date) DESC;
- тоже не получилось.

Спасибо!

Добавлено через 17 минут
Добавил MONTH(p_date) и получилось
MySQL
1
SELECT YEAR(p_date), MONTH(p_date), MONTHNAME(p_date),COUNT(*) FROM tasks_log_sv GROUP BY MONTHNAME(p_date),YEAR(p_date),MONTH(p_date) ORDER BY MONTH(p_date)');
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2018, 10:36
Помогаю со студенческими работами здесь

Подсчет суммы за месяц
Есть таблица вида: Дата, Товар, .... Выгода. Нужно посчитать выгоду за месяц (например с 01.03.2013 по...

Остатки на каждый месяц
Добрый день! Ребята нужна Ваша помощь, по форуму не нашел решения моей проблемы. Ситуация такова, существует база Аптеки на мед...

Win7x64 слетает каждый месяц
Добрый день! Очень нужна консультация специалистов. Дело в следующем. Вот уже на протяжении приблизительно полугода у меня происходят...

Определить зарплату за каждый месяц
Подскажите, пожалуйста, не понимаю, как считать. Задание: Определить зарплату каждого экскурсовода за каждый месяц при условии, что она...

Номер заказа каждый месяц с 1
Здравствуйте! Помогите пожалуйста с такой вот проблемой. Нужно мне, чтобы номер заказа в БД каждый месяц начинался с 1. Алгоритм себе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 12.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 11.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 10.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 09.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 09.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 09.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru