Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построение графика, для вывода голосования 
:(
    Опции темы
PARROT
Дата 5.3.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 2
Всего: 50



Вот, написала голосование http://pk.traktora.spb.ru/index.php?page=comment&idp=92 (как у нас на форуме!), появилась проблема, как вывести его в виде графика, результаты в процентах?
Искала в поиске, нашла класс, но не понимаю.
Разжуйте пожалуйста, насколько это возможно.
Спасибо.
В книге РНР написано очень много, ну просто очень много. Может есть маленький примерчик?
За что буду благодарна. Спасибо!

Это сообщение отредактировал(а) PARROT - 5.3.2006, 22:17


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Illuminaty
Дата 5.3.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 1
Всего: 56



PARROT, результаты нужно в виде графика или в виде диаграммы?
Если второе, то диаграмма выводится div'ами, помещенными в контейнер (можно тоже div), и их высота (ширина) задается в процентах от высоты (ширины) контейнера.
Удачи!
PM MAIL ICQ   Вверх
PARROT
Дата 5.3.2006, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 2
Всего: 50



В виде полосочек. Мне бы примерчик. smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
gAnton
Дата 6.3.2006, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 21.1.2006

Репутация: нет
Всего: нет



проблема в том, чтобы создать динамическую картинку средствами php или в том, чтобы посчитать высоту этих столбцов?
по большому счету это простейшая математика, а картинка создается примерно так(просто кусок из кода в качестве примера, переменные не определены):
Код

$new_image=imageCreateTrueColor($w, $h);

//выделяем цвета для рисования в картинке по rgb составляющим
$c_white=imageColorAllocate($new_image, 255, 255, 255);
$c_black=imageColorAllocate($new_image, 0, 0, 0);
$c_blue=imageColorAllocate($new_image, 0, 0, 255);
$c_green=imageColorAllocate($new_image, 0, 255, 0);
$c_red=imageColorAllocate($new_image, 255, 0, 0);
$c_gray=imageColorAllocate($new_image, 196, 196, 196);

//заполняем белым фоном прямоугольник картинки
imagefilledrectangle($new_image, 0, 0, $w, $h, $c_white);

//пример отрисовки линии красным цветом
imageline($new_image, 30, 15+$y_scale*$delta, 33, 15+$y_scale*$delta, $c_red);

//ну и так далее всякие операции рисования. а конце:
Header("Content-type:image/png");
imagePng($new_image);

PM MAIL   Вверх
PARROT
Дата 6.3.2006, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 2
Всего: 50



Ну вот, нарисовала, но проблема появилась:
Отдельно от кода полосочки рисуются без проблем, а вот в коде, на эту строку:
Код

ImagePng ($im); 

выдается вот такая красота:
Код

подождать [ 2 ] ‰PNG  IHDRИ›{СPLTEяяяUВУ~DIDATxњcшЏ 0@Ё иЂ‘dF22їађQjtА!Гф— KGN\nаДeљB.·ЩбТГ@Lи`„B’Љ”eЬгIEND®B`‚ 
нет [ 4 ] ‰PNG  IHDRИ›{СPLTEяяяUВУ~BIDATxњcшЏ 0 s~0 #Й2Њ 8dм”ађQtА!cУЃKF©Ј‡ S'.·1uв4-—Ыd”pй!!tPВУаАБ‡µБIEND®B`‚ 
да [ 2 ] ‰PNG  IHDRИ›{СPLTEяяяUВУ~DIDATxњcшЏ 0@Ё иЂ‘dF22їађQjtА!Гф— KGN\nаДeљB.·ЩбТГ@Lи`„B’Љ”eЬгIEND®B`‚ 
Всего голосов: 8 

Почему, я пока не поняла.
Добавлено @ 19:11
Сам код:
Код

//запрос общего количества голосов
                            $query="select * from opros WHERE id_opr='$idp'";
                            $result=mysql_query($query);
                            $num_vot=mysql_num_rows($result);
                            //подсчет общего количества голосов
                            $total_votes=0;
                            while($row=mysql_fetch_object($result))
                            {
                            $total_votes+=$row->numb;
                            }
$prosmotr=mysql_query("SELECT id_opr,otvet,numb FROM opros WHERE id_opr=$idp");
while($vivod=mysql_fetch_row($prosmotr)){

?>
<table width=300 border cellspacing=0>
<tr>
<td width=100><?=$vivod[1];?></td><td width=20>[ <b><?=$vivod[2];?></b> ]</td>
<td>
<?
//начало графика
$height=15;
$width=200;
$im=ImageCreate($width,$height);
$white=ImageColorAllocate($im,255,255,255);
$black=ImageColorAllocate($im,0,0,0);
ImageFill($im,0,0,$white);
imagerectangle($im,0,0,199,14,$black);
$x=$vivod[2]/$total_votes*200;
imagefilledrectangle($im,0,0,$x,15,$black);
$out=$x/2;
$out = $out."%";
ImageString($im,2,200-30,1, $out, $black);
Header ('Content-type: image/png');
ImagePng ($im);
ImageDestroy($im);
//конец графика
?>
</td>
</tr>
<?
}
?>
<tr>
<td colspan=3 align=center>Всего голосов: <?=$total_votes;?></td>
</tr>
</table>

Добавлено @ 19:22
вот пример чего оно рисует вместо графика: http://pk.traktora.spb.ru/index.php?page=comment&idp=92


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
PARROT
Дата 6.3.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 2
Всего: 50



Всем спасибо, заработало. smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0599 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.