
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
۩
Дата
|
![]() ![]() Местный житель ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 193 Пользователь №: 29636 На форуме: Карма: ![]() |
всем привет.
есть вот такой запрос $sqlTotal = "SELECT COUNT(*) AS Number FROM `guest_card` WHERE MONTH(date_reg) = 06 AND YEAR(NOW())"; который считает количество гостей за месяц. В данном примере месяц июнь. Хотел вывести данные за все месяца в цикле и полученные цифры записать в массив. массив типа array[12,54,24] и т.д. за все 12 месяцев. подскажите пожалуйста - как это сделать? |
![]() |
|||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6474 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
Ни в коем разе не циклы, забудьте это слово по отношению MySQL. Откройте для себя группировку GROUP BY -------------------- |
||
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6474 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
SELECT t.`month` `month`, COUNT(t.`month`) `number` -------------------- |
![]() |
|||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 10 месяцев, 24 дня ![]() |
не надо так категорично бывают ситуации, когда без них не обойтись -------------------- |
||
![]() |
۩
Дата
|
![]() ![]() Местный житель ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 193 Пользователь №: 29636 На форуме: Карма: ![]() |
Valick спасибо большое!
|
![]() |
|||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6474 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
значит логическая ошибка была допущена на стадии проектирования БД -------------------- |
||
![]() |
|||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 10 месяцев, 24 дня ![]() |
нет ![]() -------------------- |
||||
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6474 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
Invis1ble, пример
![]() -------------------- |
![]() |
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 10 месяцев, 24 дня ![]() |
Valick
не хватает оперативки на обработку большой выборки, приходится в цикле извращаться с лимитом и оффсетом -------------------- |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6474 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
Invis1ble, это проблемы железа и это ни разу не аргумент
это всё равно что ладу калину ругать за то что она не может увезти 50 тонн за раз а вообще что-то не так с твоим примером, получается весь объём информации обработать можно, а отдать в РНР нельзя? это нонсенс. А если доставать из БД частями, то прийдётся обрабатывать на стороне РНР - это глупость -------------------- |
![]() |
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 10 месяцев, 24 дня ![]() |
Valick
как это не аргумент. Ты сказал забыть о циклах, а я привел пример, когда без них не обойтись. Проблема железа стала проблемой программиста. -------------------- |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6474 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
Invis1ble, это выдуманный пример, ничего общего не имеет с реальной жизнью
еще раз повторяю достать из БД частями, потому что не хватает оперативки у БД, и обработать в РНР (где понадобиться еще больше оперативки, я уже молчу о ресурсах процессора) это ну никак не решение проблемы -------------------- |
![]() |
|
![]() ![]() Местный житель ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 193 Пользователь №: 29636 На форуме: Карма: ![]() |
Valick
вот только в запросе, если записи нет то получается не 12 а например 10 месяцев. а нельзя сделать что бы даже если нет записи, то показывало 0 ? |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6474 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
Okulo, это можно (и нужно) сделать при выводе средствами РНР
например создать зарание массив ключами которого будут являться месяцы, а значениями просто 0, затем сделать вывод из БД в массив, существующие значения заменяться на значения из БД, а несуществующие так и остануться нулём вот так создаётся массив $a = array_fill(1, 12, 0); можно конечно и на уровне СУРБД извратиться, но оно того не стоит -------------------- |
![]() |
۩
Дата
|
![]() ![]() Местный житель ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 193 Пользователь №: 29636 На форуме: Карма: ![]() |
Valick
я вот так использовал ваш код
и вот массив $totalValue у меня получается из 11 строк, так как в одном месяце нет записей |
![]() |
![]() ![]() ![]() |