omvendt dynamisk graf i gdlib :S
hej eksperter :)jeg er efter længe søgning selv gået i gang med at lave mig en dynamisk graf i gdlib!
jeg har aldrig arbejdet med billeder i php før, så det hele er noget jeg har læst mig til via php-manualen (så derfor vil jeg ikke have noget at vide om det er newbie-kode hehe)
mit problem er at jeg på en eller anden måde har fået det vendt på hovede :(
den laver en graf over svartider på min server, men af en eller anden grund så bliver den modsat af hvad den skal!
for nemmere at forklare det kan i se grafen på denne side:
http://local.alnet.dk/alstatus.dk/graf.php?host=1&port=80
og koden er som følgende:
-------------------------------------------------------------
<?
session_start();
header ("Content-type: image/png");
include("db.php");
// billedets størrelse
$billedw = 790;
$billedh = 395;
$fbilledw = 800;
$fbilledh = 400;
// mindste værdi
$value_min = mysql_query("SELECT * FROM serv_status WHERE host = '$_GET[host]' AND port = '$_GET[port]' ORDER BY respons ASC LIMIT 0,1") or die(mysql_error());
while($row = mysql_fetch_array($value_min)) {
$min = $row["respons"];
}
// højeste værdi
$value_max = mysql_query("SELECT * FROM serv_status WHERE host = '$_GET[host]' AND port = '$_GET[port]' ORDER BY respons DESC LIMIT 0,1") or die(mysql_error());
while($row = mysql_fetch_array($value_max)) {
$max = $row["respons"];
}
// antal rækker
$foresp1 = mysql_query("SELECT * FROM serv_status WHERE host = '$_GET[host]' AND port = '$_GET[port]'") or die(mysql_error());
$antalcheck = mysql_num_rows($foresp1);
// bredde pr. bar
$barbredde = $billedw/$antalcheck;
// standard billede-variabler
$im = imagecreate ($fbilledw, $fbilledh);
$white = imagecolorallocate ($im,255,255,255);
$blue = imagecolorallocate ($im,0,0,255);
$black = imagecolorallocate ($im,0,0,0);
// tekster
$text_max = $max*1.1;
$text_min = 0;
$text_midt = $text_max/2;
// x-y
$bund = $billedh-8;
$midt = $billedh/2-12;
// forhold
imagestring ($im, 2, 0, 0, $text_max, $black);
imagestring ($im, 2, 0, $midt, $text_midt, $black);
imagestring ($im, 2, 0, $bund, $text_min, $black);
// lav søjler
$start = 10;
$value = mysql_query("SELECT * FROM serv_status WHERE host = '$_GET[host]' AND port = '$_GET[port]'") or die(mysql_error());
while($row = mysql_fetch_array($value)) {
$respons = $row["respons"];
$procent = $text_max/$respons;
$hvor = $billedh/$procent;
$slut = $start+$barbredde;
imagerectangle ($im,$start,$hvor,$slut,$billedh,$black);
$start = $slut;
}
// udskriv billede
imagepng($im);
?>
----------------------------------------------------------
det er lidt svært at forklare, men hvis man vendte sin skærm på hovedet ville den komme til at passe...
fx er værdierne for de første 5 rækker følgende:
0,0290
0,0267
0,0276
0,0300
0,0286
hvilket jo ikke svare til grafen!
hvordan får jeg den "vendt" om?
