[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка 2-мя циклами и вывод в диаграм.
titovff
есть задачка!
УСЛОВИЕ: несколько городов, в каждом городе несколько магазинов, у каждого магазина своя выручка.
НЕОБХОДИМО: посчитать сумарную выручку по каждому городу в отдельности и вывести все города в обую диаграмму, где оси -прибыль в нутри столбца написать какой город. ну и каждый столбец покрасить в свой цвет.
кол-во точек и городов может рости.
как мыслю я. есть таблица sql tt_rez и в ней столбцы магазин - tt_id , выручка - res_rub , город - gorod
1) отсортировал по городу
2) перебираю
вот код
$resultdr = mysql_query("select * from  tt_res ORDER BY gorod",$db);
$myrowdr = mysql_fetch_array($resultdr);
//echo $_SESSION['tit'];
do {
$g= $myrowdr['gorod'];
$g2=$myrowdr['gorod'];
$s= 0;
do {

if ($g==$g2)
{$s=$s+$myrowdr['res_rub'];}
next($tmyrowdr);
$g2=$myrowdr['gorod'];
}
while ($g=$g2);
echo '
<table width="'
.$s.'px" height="1px" border="0" bgcolor="#3300CC" >
<tr>
<td>'
?> <? echo $myrowdr["gorod"]?> <? echo'</td>
</tr>
</table>
'
;
}
while ($myrowdr = mysql_fetch_array($resultdr));




Спустя 2 минуты, 33 секунды (7.10.2010 - 16:35) arvitaly написал(а):
В чем вопрос то?

Спустя 40 секунд (7.10.2010 - 16:36) sergeiss написал(а):
Ты не поверишь... Смотреть даже тошно на этот код...

1. Организация цикла выборки - см. тут: http://phpforum.ru/index.php?showtopic=21916 и тут http://phpforum.ru/index.php?showtopic=32799

2. Запрос надо написать так, чтобы уже в нем находилась нужная сумма. А в ПХП только чтобы забирать готовый результат. Это будет проще намного.

Спустя 18 минут, 9 секунд (7.10.2010 - 16:54) titovff написал(а):
УСЛОВИЕ: несколько городов, в каждом городе несколько магазинов, у каждого магазина своя выручка.
НЕОБХОДИМО: посчитать сумарную выручку по каждому городу в отдельности и вывести все города в обую диаграмму, где оси -прибыль в нутри столбца написать какой город. ну и каждый столбец покрасить в свой цвет.
кол-во точек и городов может рости.

можно более доступно, плиззззззз

Спустя 16 часов, 10 минут, 21 секунда (8.10.2010 - 09:04) titovff написал(а):
ну кто нибудь!!! помогииииииииииите

Спустя 10 минут, 48 секунд (8.10.2010 - 09:15) sergeiss написал(а):
Цитата (titovff @ 8.10.2010 - 10:04)
ну кто нибудь!!! помогииииииииииите

А в чем помогать-то?
1. Ты так и не озвучил, в чем проблема, что не понятно. Хотя тебя прямо спросили об этом.
2. Ты ходил по указанным мной ссылкам, переделал код? В чем именно "затык" с кодом, в чем помогать?

Спустя 46 минут, 19 секунд (8.10.2010 - 10:01) titovff написал(а):
я ходил по ссылкам. там подключение к базе, запрос. это понятно.
я понимаю, что нужно делать цикл в цикле. 1-й цикл проверка по всем строчкам базы
do {
}

while ($myrowdr = mysql_fetch_array($resultdr));

и вложенный цикл сумирование выручки по магазинам в конкретном городе
 do {

if ($g==$g2)
{$s=$s+$myrowdr['res_rub'];}
next($tmyrowdr);
$g2=$myrowdr['gorod'];
}
while ($g=$g2);

как сделать, чтобы во вложенном цикле после каждого его прохода переходить на след. строчку?

Спустя 52 секунды (8.10.2010 - 10:02) titovff написал(а):
next($tmyrowdr); - не работает

Спустя 26 минут, 47 секунд (8.10.2010 - 10:29) sergeiss написал(а):
Цитата (titovff @ 8.10.2010 - 11:01)
я ходил по ссылкам. там подключение к базе, запрос. это понятно.

Нифига ты не ходил. И нифига не понял, если даже и смотрел "по диагонали". Видно это по тому, что ты спрашиваешь, утверждая при этом, что сходил по ссылкам.

ГДЕ ТАМ цикл do-while при выборке данных из БД?

Еще раз сходи и ВНИМАТЕЛЬНО перечитай. Никто, в т.ч. я, не будем тебе тут пересказывать то, что уже специально было написано. На этом же форуме. Иди и читай.

Спустя 15 минут, 3 секунды (8.10.2010 - 10:44) titovff написал(а):
прошу быть ко мне более терпимым. я еще раз прочитал. просто цикл работает и с иоей конструкцией, а мне нужет цикл в цикле!

Спустя 5 минут, 40 секунд (8.10.2010 - 10:50) sergeiss написал(а):
Цитата (titovff @ 8.10.2010 - 11:44)
прошу быть ко мне более терпимым

По-моему, именно этим я и занимаюсь последние часа два smile.gif

Цитата (titovff @ 8.10.2010 - 11:44)
я еще раз прочитал. просто цикл работает и с иоей конструкцией, а мне нужет цикл в цикле!

А ты не просто прочитай... А сделай, как там написано smile.gif С использованием цикла while. Именно while, а не do-while. Покажи новый код, который получишь. Тогда и продолжим разговор.

И опять же... Если ты считаешь, что у тебя всё сделано правильно и ты не хочешь ничего переделывать - то зачем спрашиваешь-то?

Спустя 4 минуты, 50 секунд (8.10.2010 - 10:55) titovff написал(а):
буду переделывать.

Спустя 3 часа, 5 минут, 12 секунд (8.10.2010 - 14:00) titovff написал(а):
я упрямый smile.gif . задачу свою решил вот так
$resultdr = mysql_query("select * from  tt_res ORDER BY gorod",$db);
$myrowdr = mysql_fetch_array($resultdr);
//echo $_SESSION['tit'];
$g1=$myrowdr['gorod'];
$s= 0;
do {
$g2=$myrowdr['gorod'];
if ($g1==$g2)
{$s=$s+$myrowdr['res_rub'];}
else
{echo '
<table width="'
.$s.'px" height="1px" border="0" bgcolor="#3300CC" >
<tr>
<td>'
?> <? echo $g1?> <? echo'</td>
</tr>
</table>
'
;
$g1=$myrowdr['gorod'];
$s=$myrowdr['res_rub'];
}}
while ($myrowdr = mysql_fetch_array($resultdr));


дальше не обходимо
1) раскрасить в разные цвета, как то с помощью пошагового изменения цвета.
2)получается, что столбцы длинющие, нужно как то взять самый большой и принять его за 100 %, а остальные относительно него вычерчивать.
есть у кого идеи как решить эти задачи

Спустя 36 минут, 50 секунд (8.10.2010 - 14:37) sergeiss написал(а):
Тему закрываю, чтобы "поповщину" тут не распространял. Будут вопросы - создавай новую тему. Но только без "поповского" кода.
Быстрый ответ:

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