Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужно сделать график
 
 автор: CrazyAngel   (27.04.2006 в 12:46)   письмо автору
 
 

Нужно сделать график, даются 10 последних дней (у) и соответствующие значения(х),
нужно чтоб график рисовался автоматически,

данные баются из БД

   
 
 автор: CrazyAngel   (27.04.2006 в 16:04)   письмо автору
 
   для: CrazyAngel   (27.04.2006 в 12:46)
 

Ни кто не может помочь?

   
 
 автор: Zuzle   (27.04.2006 в 23:03)   письмо автору
 
   для: CrazyAngel   (27.04.2006 в 16:04)
 

Найдено в интернете:
http://wboard.ru/topic783.html






Данный код был разработан для системы MWS, который дете статистику посещений сайта. Все ключи массива $p содержат в себе кол-во постетителей, которые отражаются на графике. График по дням недели. От 1 до 7.
Количество дней можно увеличить если добавить Ещё один ключ к массиву, и изменить значение переменной $picWidth на 100, т.е. прибавить ещё 100.
Скрипт сам будет вытягиваться по высоте, он высиитывает максимальное значение массива, и поирает нужную высоту графика.
Если буду вопросы, ICQ: 333-474; MAIL: vchampion@gmail.com
Вот полностью рабочий код:




<?php
#########################################################
#//-----------------------------------------------------#
#     MWS System График статистики на 7 дней            #
#       by Крахалёв Владислав aka champion              #
#           vchampion@gmail.com                         #
#//-----------------------------------------------------#
#########################################################
// В этом графике можно добавлять не только 7 дней, но и больше.
#Для этого добавьте ключ в массиве, и увеличьте значение $picWidth на 100
Header("Content-type: image/png");
$p=array("60","50","40","30","20","10","0");
$picWidth=700// Рассчитано на 7 дней, т.е. 7 цифр
$picHeight=max($p)*10;  // Определение высоты, лучше не трогать
$pic=ImageCreate($picWidth+2,$picHeight+2);
//colors
$cWhite=ImageColorAllocate($pic,255,255,255);
$cBlack=ImageColorAllocate($pic,0,0,0);
$cRed=ImageColorAllocate($pic,255,0,0);
$cBlue=ImageColorAllocate($pic,0,0,255);
$off=ImageColorAllocate($pic,214,214,214);
##STRELKI
imageLine($pic,20,0,24,14,$cBlack); //Y1
imageLine($pic,20,0,17,14,$cBlack); //Y2
imageLine($pic,$picWidth,$picHeight-10,$picWidth-14,$picHeight-14,$cBlack); //X1
imageLine($pic,$picWidth,$picHeight-10,$picWidth-14,$picHeight-7,$cBlack); //X2
//--------------------------------------------------------------
#################SETKA START
$i=0;
$F=$i;
$g=0;
for (
$i=0$i<$picHeight+$picWidth$i++) {
$F+=90;
$g+=10;
ImageLine($pic,$picWidth,$picHeight-$F-5,10,$picHeight-$F-5,$off); // Po Oy
ImageLine($pic,$F+1+9,$picHeight-10,$F+1+9,0,$off);//Po Ox
ImageLine($pic,10+$F,$picHeight-10,10+$F,$picHeight-7,$cBlack);//Pics1
ImageLine($pic,20,$picHeight-$F-5,15,$picHeight-$F-5,$cBlack);//Pics2
imageString($pic,2,$F+8,$picHeight-10,$i+1,$cBlack); //cifres Ox
imageString($pic,2,0,$picHeight-12-$F,$g,$cBlack); //cifres  Oy
}
//#############################SETKA END
//Osi Ox and Oy
ImageLine($pic,20,0,20,$picHeight-10,$cBlack);  //Oy
ImageLine($pic,20,$picHeight-10,$picWidth,$picHeight-10,$cBlack);  //Ox
////////////////////////////////////////
//Oboznachenie X and Y
imageString($pic,3,$picWidth-10,$picHeight-30,'X',$cBlack); //X
imageString($pic,3,$picWidth-40,$picHeight-50,'DAYS',$cBlack); //DAYS
imageString($pic,3,35,20,'VISITS',$cBlack); //VISITS
imageString($pic,3,28,2,'Y',$cBlack); //Y
//
###GRAPH
$f=0;
$g=0;
for (
$i=0$i<count($p); $i++) {
if (
$i!=0$f+=80;$g+=2;
if (
$i==0) {
if (
$p[$i]==0) {$p[$i]=1;$text='0 visists'; }else{$text=$p[$i].' visists';}
@
imageLine($pic,21+$f,$picHeight-11,100+$f,($picHeight-$p[$i]*9)-6,$cRed);
imagestring($pic,3,102+$f,($picHeight-$p[$i]*9)-20,$text,$cBlack);
imagestring($pic,3,98+$f,($picHeight-$p[$i]*9)-16,'.',$cBlack);
}else {
if (
$p[$i]==0) {$p[$i]=1;$text='0 visists'; }else{$text=$p[$i].' visists';}
@
imageLine($pic,90*$i+10,$y-1,90*$i+100,($picHeight-$p[$i]*9)-6,$cRed);
imagestring($pic,3,90*$i+100,($picHeight-$p[$i]*9)-20,$text,$cBlack);
imagestring($pic,3,90*$i+98,($picHeight-$p[$i]*9)-16,'.',$cBlack);
}
$y=($picHeight-$p[$i]*9)-5;
}
///////////////////////////////////////////////////////////////
ImagePNG($pic);
ImageDestroy($pic);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования