Bonjour
Je travaille avec wamp server 2.0, php 5.2.7, gd2.
Je cherche à faire un nuage de point dynamique avec gd2:

Quand je code mes points en 'dur', j'obtiens l'image attendue.
Jusqu'à là pas de problème.

Quand je charge mes points depuis ma base de données (j'obtiens les coordonnées x,y de mes points).
et que je cherche à les afficher sur le graphe, rien ne va plus :
"l'image ne peut affichée car elle contient des erreurs."
Ce que j'ai fait:
  • J'ai vérifié mes coordonnées, elles sont bien présentes dans coord_x[] et coord_y[]
    et coherentes avec la taille de l'image :
    200 < x < 300,
    50< y < 450,
    il y a 100 points
    pour une image de 800x600

  • j'ai mis l'interrogation de la base en commentaire (/**/)et codé mes points $xg et $yg en dur ainsi que $nombre_enregistrement: pas de pb

  • J'ai enlevé le /* */ entourrant l'interro de ma base, laissé en dur les variables précédente et de nouveau erreur...


Merci de votre aide.

Voici mon code (du moins l'essentiel):

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
	include ('connexion_base.php');
	// je recupere dans un tableau la table t_cim10_graphe
		$query='SELECT X,Y FROM `coordonnees`';
		$result=mysql_query($query) or die('La requête ne fonctionne pas.');
		$nbr_enregistrement=mysql_num_rows($result);
	//tableau $coord contient 2 colonnes: X et Y 
		while ($val=mysql_fetch_array($result))
			{	$coord_x[]=$val[0];
				$coord_y[]=$val[1];	
			}
		mysql_close($maConnexion);
	//********************************************
	//********************************************/
	//realisons le graphique
		header ("Content-type: image/png");
		//Taille image
			$i_x=800;
			$i_y=600;
			$image=@imagecreate($i_x,$i_y);
		//Couleurs utiles pour image
			$couleur_fd=imagecolorallocate($image,0,185,92); //vert clair
			$couleur_axe=imagecolorallocate($image,83,35,0); //marron 
			$couleur_texte=imagecolorallocate($image,70,70,70); //gris
			$couleur_motif=imagecolorallocate($image,0,0,0); //noir
 
		//affichage des pixels
			for ($i=1;$i<$nbr_enregistrement;$i++)
			{	$xg=$coord_x[$i];
				$yg=$coord_y[$i];
				imagesetpixel($image,$xg,$yg,$couleur_motif);
			}
		//affiche $image
			imagepng($image);
?>