[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Данные за каждый месяц
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
Okulo
всем привет.
есть вот такой запрос
$sqlTotal = "SELECT COUNT(*) AS Number FROM `guest_card` WHERE MONTH(date_reg) = 06 AND YEAR(NOW())";

который считает количество гостей за месяц. В данном примере месяц июнь.

Хотел вывести данные за все месяца в цикле и полученные цифры записать в массив.
массив типа array[12,54,24] и т.д. за все 12 месяцев.

подскажите пожалуйста - как это сделать?
Valick
Цитата
Хотел вывести данные за все месяца в цикле и полученные цифры записать в массив.

Ни в коем разе не циклы, забудьте это слово по отношению MySQL.
Откройте для себя группировку GROUP BY

_____________
Стимулятор ~yoomoney - 41001303250491
Valick
SELECT t.`month` `month`, COUNT(t.`month`) `number`
FROM (SELECT MONTH(`date_reg`) `month`
FROM `guest_card`
WHERE YEAR(`date_reg`) = YEAR(NOW())) t
GROUP BY t.`month`

попробуйте (я уже попробовал за вас) вот так

_____________
Стимулятор ~yoomoney - 41001303250491
Invis1ble
Цитата
Ни в коем разе не циклы, забудьте это слово по отношению MySQL.

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

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Okulo
Valick спасибо большое!
Valick
Цитата
бывают ситуации, когда без них не обойтись

значит логическая ошибка была допущена на стадии проектирования БД

_____________
Стимулятор ~yoomoney - 41001303250491
Invis1ble
Цитата (Valick @ 25.12.2014 - 11:18)
Цитата
бывают ситуации, когда без них не обойтись

значит логическая ошибка была допущена на стадии проектирования БД
Valick
Invis1ble, пример smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
Invis1ble
Valick
не хватает оперативки на обработку большой выборки, приходится в цикле извращаться с лимитом и оффсетом

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Valick
Invis1ble, это проблемы железа и это ни разу не аргумент
это всё равно что ладу калину ругать за то что она не может увезти 50 тонн за раз

а вообще что-то не так с твоим примером, получается весь объём информации обработать можно, а отдать в РНР нельзя? это нонсенс.
А если доставать из БД частями, то прийдётся обрабатывать на стороне РНР - это глупость

_____________
Стимулятор ~yoomoney - 41001303250491
Invis1ble
Valick
как это не аргумент. Ты сказал забыть о циклах, а я привел пример, когда без них не обойтись. Проблема железа стала проблемой программиста.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Valick
Invis1ble, это выдуманный пример, ничего общего не имеет с реальной жизнью
еще раз повторяю достать из БД частями, потому что не хватает оперативки у БД, и обработать в РНР (где понадобиться еще больше оперативки, я уже молчу о ресурсах процессора) это ну никак не решение проблемы

_____________
Стимулятор ~yoomoney - 41001303250491
Okulo
Valick

вот только в запросе, если записи нет то получается не 12 а например 10 месяцев.
а нельзя сделать что бы даже если нет записи, то показывало 0 ?
Valick
Okulo, это можно (и нужно) сделать при выводе средствами РНР
например создать зарание массив ключами которого будут являться месяцы, а значениями просто 0, затем сделать вывод из БД в массив, существующие значения заменяться на значения из БД, а несуществующие так и остануться нулём
вот так создаётся массив
$a = array_fill(1, 12, 0);

можно конечно и на уровне СУРБД извратиться, но оно того не стоит

_____________
Стимулятор ~yoomoney - 41001303250491
Okulo
Valick
я вот так использовал ваш код

$sqlTotal = "SELECT t.`month` `month`, COUNT(t.`month`) `number`
FROM (SELECT MONTH(`date_reg`) `month`
FROM `guest_card`
WHERE YEAR(`date_reg`) = YEAR(NOW())) t
GROUP BY t.`month`"
;
$total = mysql_query($sqlTotal);


while($resultTotal = mysql_fetch_array($total))
{
$totalValue[] = $resultTotal['number'];
}


и вот массив $totalValue у меня получается из 11 строк, так как в одном месяце нет записей
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.