[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Данные за каждый месяц
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
Invis1ble
Цитата
У меня есть подозрение, что его "PDO.... fetchAll" хочет сначала вытащить всё в ПХП, а потом только работать с данными.

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

_____________

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

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

Okulo
Цитата (Valick @ 25.12.2014 - 10:16)
сделайте вот так
$totalValue = array_fill(1, 12, 0);
while($resultTotal = mysql_fetch_array($total))
{
$totalValue[$resultTotal['month']] = $resultTotal['number'];
}
print_r($totalValue);

Array ( [1] => 2 [2] => 2 [3] => 6 [4] => 2 [5] => 3 [6] => 9 [7] => 3 [8] => 7 [9] => 0 [10] => 2 [11] => 3 [12] => 2 )

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

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

_____________

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

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

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

Invis1ble, всё очень просто отказаться от использования fetchAll


_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата (Okulo @ 25.12.2014 - 13:28)
вот такой ответ. а в графике за январь почему то ничего не выводит

значит график хочет $totalValue[0] для января :D
дайте ему ноль))
$totalValue = array_fill(0, 11, 0);
while($resultTotal = mysql_fetch_array($total))
{
$totalValue[$resultTotal['month']-1] = $resultTotal['number'];
}
print_r($totalValue);


_____________
Стимулятор ~yoomoney - 41001303250491
Invis1ble
Цитата
всё очень просто отказаться от использования fetchAll

что использовать вместо fetchAll ?

PS. ТС, извини, что мы тут междусобойчик устроили smile.gif Мы же тебе не сильно мешаем, да? smile.gif

_____________

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

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

Okulo
Цитата (Invis1ble @ 25.12.2014 - 10:43)
Цитата
всё очень просто отказаться от использования fetchAll

что использовать вместо fetchAll ?

PS. ТС, извини, что мы тут междусобойчик устроили smile.gif Мы же тебе не сильно мешаем, да? smile.gif

без проблем wink.gif

Valick спасибо за помощь.
все получилось. график выводится как надо
sergeiss
Цитата (Invis1ble @ 25.12.2014 - 14:17)
она у меня и так простейшая, SELECT * FROM `table_name`

А зачем тогда оффсеты??? Ты когда сказал про лимиты с оффсетами, то я решил (небезосновательно), что запрос достаточно сложный.

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

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

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

user posted image
Invis1ble
sergeiss
я же написал, запрос запускаю в цикле из-за нехватки памяти. Типа
select * from `table` limit 10;

select * from `table` limit 10 offset 10;

select * from `table` limit 10 offset 20;


_____________

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

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

Valick
Цитата (Invis1ble @ 25.12.2014 - 13:43)
что использовать вместо fetchAll ?
sergeiss
Цитата (Invis1ble @ 25.12.2014 - 14:59)
я же написал, запрос запускаю в цикле из-за нехватки памяти. Типа
select * from `table` limit 10;

select * from `table` limit 10 offset 10;

select * from `table` limit 10 offset 20;

Я понял, что ты так запускаешь :) Но вот я и спрашиваю "нахрена так запускаешь"? Ведь третий из твоих запросов выберет 30 записей, вернет 10 последних. А если будет так
select * from `table` limit 10 offset 1000000;

то будет выбрано 1 млн 10 записей (внутри Мускуля)... Из которых только 10 будет возвращено в ПХП. Зачем так Мускуль насиловать, ему и без этого не сладко живется :)

Я ж потому и говорю, что надо из каждого предыдущего запроса брать айдишник (или другое поле) последней записи и использовать его.
select * from `table` order by id limit 10; # предположим, что в последней записи получили id=25

select * from `table` where id > 25 order by id limit 10; # получили вторую десятку записей

# и так далее


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

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

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

user posted image
sergeiss
Цитата (Okulo @ 25.12.2014 - 14:28)
вот такой ответ. а в графике за январь почему то ничего не выводит

У тебя в массиве январю соответствует индекс 1. А там, где строишь графики, что ему соответствует?

PS. Сорри, сначала написал 0, хотя подразумевал 1. Исправил.

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

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

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

user posted image
Invis1ble
sergeiss
Да, ты прав, так лучше будет.
Два нюанса, чтоб было понятней:
1) скрипт был практически одноразовый, так что над такой оптимизацией я не особо задумывался. Ну будет запускаться раз в полгода, ориентировочно. А может и вообще не будет больше.
2) Узкое место в скорости далеко не мускул smile.gif

_____________

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

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

sergeiss
Цитата (Invis1ble @ 25.12.2014 - 15:20)
Узкое место в скорости далеко не мускул

А как быть с удовлетворением от качественно сделанной работы? wink.gif

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

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

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

user posted image
Invis1ble
Цитата (sergeiss @ 25.12.2014 - 14:21)
Цитата (Invis1ble @ 25.12.2014 - 15:20)
Узкое место в скорости далеко не мускул

А как быть с удовлетворением от качественно сделанной работы? wink.gif

А никак, когда "надо было ещё вчера" smile.gif

_____________

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

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

Быстрый ответ:

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