[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Данные за каждый месяц
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
Valick
$totalValue = array_fill(1, 12, 0);
while($resultTotal = mysql_fetch_array($total))
{
$totalValue[$resultTotal['month']] = $resultTotal['number'];
}


_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
Цитата (Invis1ble @ 25.12.2014 - 12:44)
не хватает оперативки на обработку большой выборки, приходится в цикле извращаться с лимитом и оффсетом

Не понял. Ты имеешь ввиду, что Мускуль может выбрать данные, а вот передать их в ПХП уже не в состоянии?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Okulo
Цитата (Valick @ 25.12.2014 - 09:33)
$totalValue = array_fill(1, 12, 0);
while($resultTotal = mysql_fetch_array($total))
{
$totalValue[$resultTotal['month']] = $resultTotal['number'];
}

так пустой месяц отобразился, но исчез январь ..
Invis1ble
Valick
Это не выдуманный пример, последний раз месяц назад примерно столкнулся. Оперативки не хватает на уровне php.
Есть таблица с ~1kk записей. Нужно обработать каждую запись в скрипте согласно нетривиальной логики.

_____________

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

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

Invis1ble
sergeiss
на этапе PDOStatement::fetchAll, емнип.

_____________

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

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

Valick
Цитата
Нужно обработать каждую запись в скрипте согласно нетривиальной логики.

с этого и надо было начинать, с того что не хватает ума решить задачу на уровне SQL
по хорошему за таким "решением" должны последовать увольнения biggrin.gif

_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата
так пустой месяц отобразился, но исчез январь ..

не может быть smile.gif
покажите как выводите массив smile.gif

_____________
Стимулятор ~yoomoney - 41001303250491
Invis1ble
Цитата (Valick @ 25.12.2014 - 12:52)
Цитата
Нужно обработать каждую запись в скрипте согласно нетривиальной логики.

с этого и надо было начинать, с того что не хватает ума решить задачу на уровне SQL

ну давай, расскажи мне, как на уровне СУБД сделать CURL-запросы по каждой записи
user posted image

_____________

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

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

Invis1ble
А пока ты будешь придумывать, я запилю скрипт с циклом и сделаю 10 запросов вместо одного.

_____________

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

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

Valick
Invis1ble, может всё таки стоит выбирать кому мозг клепать? smile.gif
из БД в РНР достаётся циклом по одной строке, делай CURL сколько влезет
другое дело если у тебя результат работы CURL запросов некуда девать, то тут уж я точно не виноват, как собственно и БД
Цитата
А пока ты будешь придумывать

мне не надо ничего придумывать, придумал ты сам, а теперь как уж на сковородке smile.gif
я за язык никого не тяну wink.gif

_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
Цитата (Valick @ 25.12.2014 - 13:54)
не может быть
покажите как выводите массив

Вангую, что у него январь имеет индекс 0 smile.gif Или что-то близкое к оному.

Цитата (Invis1ble @ 25.12.2014 - 13:51)
sergeiss
на этапе PDOStatement::fetchAll, емнип

Цитата (Invis1ble @ 25.12.2014 - 12:44)
не хватает оперативки на обработку большой выборки, приходится в цикле извращаться с лимитом и оффсетом

"Ахренеть, дайте два!" (с) wink.gif

В итоге получается так, что ты каждый раз делаешь полную выборку данных в БД, но из нее только часть, отсеянную лимитом и оффсетом, передаешь в ПХП? И всё это в цикле??? Ну так и нахрена так нагружать БД?
Тут как минимум 2 вариант можно предложить.
1. Выборку сливать в файл, к которому уже обращаться из ПХП.
Если это невозможно в силу каких-то причин, то тогда п.2:
2. Слить выборку во временную таблицу. Из нее уже выбирать в цикле. Но без оффсетов!!! Только с лимитом и началом выборки по условию в WHERE - мы же знаем, какая последняя запись была в предыдущей выборке (да, надо будет не забыть создать индекс для временной таблицы). И выборка будет простейшая, на уровне "SELECT * FROM ...", что также ускорит процесс.
Пусть здесь и в цикле будет запрос, но каждый запрос будет намного "легче".

Цитата (Valick @ 25.12.2014 - 14:07)
из БД в РНР достаётся циклом по одной строке, делай CURL сколько влезет

У меня есть подозрение, что его "PDO.... fetchAll" хочет сначала вытащить всё в ПХП, а потом только работать с данными.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Okulo
Цитата (Valick @ 25.12.2014 - 09:54)
Цитата
так пустой месяц отобразился, но исчез январь ..

не может быть :)
покажите как выводите массив :)

к сожалению не знаю как показать вам вывод
данный код я использую для рисования графика

$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);


$totalValue = array_fill(1, 12, 0);
while($resultTotal = mysql_fetch_array($total))
{
$totalValue[$resultTotal['month']] = $resultTotal['number'];
}

$datay=$totalValue;

там где нет данных отображается 0. но почему то массив начинается со второго месяца
(могу картинку показать)

Valick
сделайте вот так
$totalValue = array_fill(1, 12, 0);
while($resultTotal = mysql_fetch_array($total))
{
$totalValue[$resultTotal['month']] = $resultTotal['number'];
}
print_r($totalValue);


_____________
Стимулятор ~yoomoney - 41001303250491
Invis1ble
Valick
всё понятно, слив защитан
Свернутый текст
user posted image


sergeiss
Цитата
Слить выборку во временную таблицу.

честно говоря, не понял, зачем?

Цитата
И выборка будет простейшая, на уровне "SELECT * FROM ...", что также ускорит процесс.

она у меня и так простейшая, SELECT * FROM `table_name`

_____________

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

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

Valick
Invis1ble, какой слив? ты только что на весь форум признался в говнокодерстве, так и не доказав несостоятельность SQL обойтись без циклов.


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

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