<?php 

$image = ImageCreate(750, 300); 
$achtergrond = ImageColorAllocate($image, 255, 255, 255); 

$kleur = ImageColorAllocate($image, 255, 0, 0); 




$x1 = 0;
$y1 = 0;

$x2 = 25;
$y2 = 25;
// 1e punt zelfde als boven
$x1b = 25;
$y1b = 25;
// x + 25 en y mag veranderen naar keuze
$x2b = 75;
$y2b = 25;
		   
// 1e punt zelfde als boven
$x1c = 75;
$y1c = 25;
// x + 25 en y mag veranderen naar keuze
$x2c = 150;
$y2c = 50;



//De uitleg van image line volgt hieronder 
ImageLine($image, $x1, $y1, $x2, $y2, $kleur);
  ImageLine($image, $x1b, $y1b, $x2b, $y2b, $kleur);
	 ImageLine($image, $x1c, $y1c, $x2c, $y2c, $kleur);
		ImageLine($image, $x1d, $y1d, $x2d, $y2d, $kleur);
		  ImageLine($image, $x1e, $y1e, $x2e, $y2e, $kleur);
			  ImageLine($image, $x1f, $y1f, $x2f, $y2f, $kleur);
			  	  ImageLine($image, $x1g, $y1g, $x2g, $y2g, $kleur);
				      ImageLine($image, $x1h, $y1h, $x2h, $y2h, $kleur);
					     ImageLine($image, $x1i, $y1i, $x2i, $y2i, $kleur);
						     ImageLine($image, $x1j, $y1j, $x2j, $y2j, $kleur);
							    ImageLine($image, $x1k, $y1k, $x2k, $y2k, $kleur);
								   ImageLine($image, $x1l, $y1l, $x2l, $y2l, $kleur);	
								       ImageLine($image, $x1m, $y1m, $x2m, $ym, $kleur); 
									       ImageLine($image, $x1n, $y1n, $x2n, $y2n, $kleur);
										       ImageLine($image, $x1o, $y1o, $x2o, $y2o, $kleur);
						   			  
			  
			  
ImagePNG($image); 
ImageDestroy($image); 
?> 


Ik heb deze code voor het maken van een grafiek... nu wil ik er een while structuur in maken om de grafiek vanuit een database te genereren, maar dit kan niet. Krijg bij alle extra phpcode een kruis in het scherm iemand enig idee hoe ik dit kan oplossen?

Alvast bedankt...
Als het goed is kun je dit gewoon doen via een database.
Als je de x-as en y-as van een punt weet kun je dat in de grafiek veranderen.

edit:
ik gebruik zelf het volgende scriptje:
<?php
if(ctype_digit($_GET['id']) AND $_GET['id'] < 4 AND $_GET['id'] >= 0)
{
$graphValues=array(15,15,50,75,100,245,50,0); // de punten van de grafiek
$imgWidth=280; // breedte van de grafiek (komt 1 bij, best altijd met 15*x vermeerderen!)
$imgHeight=195; // hoogte van de grafiek (komt 15 bij, ook best atlijd met 15*y vermeerderen!)

header("Content-type: image/png");

$image=imagecreate($imgWidth+1, $imgHeight+15);

$colorWhite = imagecolorallocate($image, 255, 255, 255); // achtergrond
$colorGrey = imagecolorallocate($image, 192, 192, 192); // kleur van het rooster op de achtergrond
$colorBlue = imagecolorallocate($image, 0, 0, 255); // kleur van de lijn

for ($i = 1; $i < 16; $i++){
// horizontale lijnen
imageline ($image, 0, $i*15, $imgWidth+15, $i*15, $colorGrey);
}
// lijn op grafiek tekenen
for ($i = 0; $i < (count($graphValues)-1); $i++)
imageline ($image, ($i*40), ($imgHeight-$graphValues[$i]), (($i+1)*40), ($imgHeight-$graphValues[$i+1]), $colorBlue);

imagepng ($image);
imagedestroy ($image);
}
?>
Maar met mijn script, heb ik het probleem dat ik dus als ik alleen een
 print "test"; 
bij de code in doe ik al een kruis krijg in mijn grafiek. Wil dus weten hoe ik dat kan oplossen?

Herman

Zodra je afbeeldingen gaat maken, gooit php er geen html uit, maar een plaatje. Hier verander je namelijk de header:

<?php
header("Content-type: image/png");
?>

En zet je het type bestand op image/png en dus niet op html/xml, en als je dan

<?php
print "test";
?>

Is de afbeelding niet meer gelding ('test' is geen geldige data voor in een afbeelding).
Maar wat is nu de oplossing de oorzaak is duidelijk, maar heb nog geen oplossing?

Reageren