Représentation Graphique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Représentation Graphique

par Photographiquement Vôtre » 12 oct. 2006, 12:28

Finallement, je me suis lancé avec Archichow et àprès quelques soucis, cela marche.

Merci encore pour ton aide

par Cyrano » 07 oct. 2006, 20:47

pas exactement, je songeais à mettre la génération de l'image dans une fonction.

par Photographiquement Vôtre » 07 oct. 2006, 17:56

J'ai essayé de mettre en pratique ton raisonnement en regroupant tout dans une page mais sans grande conviction.

Est ce à quoi tu pensais

Merci
<html> 

<style type="text/css"> 


#graphique { 
    width: 600px; 
    height: 450px; 
    position: relative; 
    top: 0; 
    left: 50%; 
    margin-left: -300px; 
} 

</style> 

<body> 

<h1 align="center">Graphique</h1>

<?php

include("connection.php");
	
function gen_Stat($annee,$mois,$jour)
	
{
	
	$jour_test=0;
	
	$visites  = array();
	
	$max_days = date('t', mktime(0, 0, 0, $month, 15, $year));

	for( $day = 1, $i = 1; $day <= $max_days; $day++, $i++ )
		{
		$jour_test= $jour_test +1;
				
		//$date_arrivee = $annee."-".$mois."-".$jour_test; 
		
		$timestamp=mktime(0,0,0,$mois,$jour_test,$annee);
		
		$date_arrivee=date("Y-m-d",$timestamp);
				
		$sql = "SELECT COUNT(commandeId) FROM tblcommande WHERE date(commandeO_timestamp)= '$date_arrivee' ";
		
		//$result = mysql_query($sql or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ) ; 

		$result = mysql_query($sql)or exit ('Erreur SQL !'.$result.'<br>'.mysql_error());
		
		$nb_commande =  mysql_result($result,0);
		//echo "$nb_commande"; 
		
		$visites[i]=$nb_commande;
				
		}	
	
		return($visites);
}	
	
	
	$date_depart= date("2006-10-01");
	
	$a_date = explode("-", $date_depart); 
	$annee = $a_date[0]; 
	$mois = $a_date[1]; 
	$jour = $a_date[2]; 
	
	$stats=gen_Stat($annee,$mois,$jour);
	
	

?>

<img src="<?php echo($stats); ?>" alt="" />

<!--<div id="graphique"><img src="stats_C.php" alt="" /></div> -->


<?php



$largeurImage = 600; 
    $hauteurImage = 450; 
    $im = ImageCreate ($largeurImage, $hauteurImage)  
            or die ("Erreur lors de la création de l'image");          
    $blanc = ImageColorAllocate ($im, 255, 255, 255);  
    $noir = ImageColorAllocate ($im, 0, 0, 0);   
    $bleu = ImageColorAllocate ($im, 0, 0, 255);         
 
        // on dessine un trait vertical pour représenter l'axe du temps     
    ImageLine ($im, 10, $hauteurImage-10, $largeurImage-10, $hauteurImage-10, $noir); 
    // on affiche le numéro des 12 mois 
    for ($mois=1; $mois<=12; $mois++) { 
        ImageString ($im, 0, $mois*30, $hauteurImage-10, $mois, $noir); 
    } 
     
    // on dessine un trait vertical pour représenter le nombre de visites 
    ImageLine ($im, 10, 10, 10, $hauteurImage-10, $noir); 
 
    // le nombre maximum de visites 
    $visitesMax = 1000; 
     
    // tracé des batons 
    for ($mois=1; $mois<=12; $mois++) { 
        $hauteurImageRectangle = round(($visites[$mois-1]*$hauteurImage)/$visitesMax); 
        ImageFilledRectangle ($im, $mois*45-7, $hauteurImage-$hauteurImageRectangle, $mois*45+7, $hauteurImage-10, $bleu); 
        ImageString ($im, 0, $mois*45-7, $hauteurImage-$hauteurImageRectangle-10, $visites[$mois-1], $noir); 
    } 
     
    // et c'est fini... 
    ImagePng ($im);  
    
?>    
    
    
</body> 

 </html>

par Cyrano » 07 oct. 2006, 14:25

Suppose qu'au lieu de la forme actuelle ton script de génération soit une fonction gen_Stat() par exemple : tu pourrais lui envoyer des paramètres.

Dans ce cas, dans ta page, tu commences par définir la valeur de ta variable en faisant quelque chose du genre :
<?php
//...
$stats = gen_Stat($param1, param2,... param2);
?>
....<img src="<?php echo($stats); ?>" alt="" />...

par Photographiquement Vôtre » 06 oct. 2006, 18:36

Bonsoir,

J'ai une autre question.

Au lieu de définir le tableau visites sur la même page que le graphe (stats_C.php), il est créé sur la page qui appelle cette page de graphe(visites.php).
par :
<div id="graphique"><img src="stats_C.php" alt="" /></div>

Comment puis je transférer mon tableau sur cette page stats_C

Merci

par Photographiquement Vôtre » 06 oct. 2006, 11:07

Oui ou ne pas avoir le graphique en image (c'est sans doute idiot comme question)

par Cyrano » 06 oct. 2006, 06:54

Tu veux dire le code HTML et le code PHP de génération d'image dans le même fichier ?

par Photographiquement Vôtre » 05 oct. 2006, 21:47

Encore une fois merci pour ton aide.

N'est il pas possible de ne pas passer par les header et n'avoir qu'une seule page ?

par Cyrano » 05 oct. 2006, 20:57

Dans ta page, insère ton image avec une balise <img /> en indiquant comme source ton fichier.php . utilise éventuellement un style CSS pour positionner ton image.

À partir de ton code, j'ai juste enregistré ça sout visites.php et j,ai ensuite créé cette page pour l'afficher :

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <!-- Date de création: 05/10/2006 --> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" /> <title></title> <meta http-equiv="imagetoolbar" content="no" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Content-language" content="FR-fr" xml:lang="fr" dir="ltr" /> <style type="text/css"> /* <![CDATA[ */ #graphique { width: 600px; height: 450px; position: relative; top: 0; left: 50%; margin-left: -300px; } /* ]]> */ </style> </head> <body> <div id="graphique"><img src="./visites.php" alt="" /></div> </body> </html>
C'est tout et tu verras que l'image est bien centrée sans utiliser de tableau.

par Photographiquement Vôtre » 05 oct. 2006, 20:45

Bonsoir,

Je n'arrive pas à centrer mon graphe au centre de la page donc je pensais l'intégrer dans une table mais je n'y arrive pas.

De plus lorsque je rajoute du html cela me provoque des choses bizarres.

Serait ce dû au header ?

par Cyrano » 05 oct. 2006, 20:39

Comment ça "dans un tableau" ?

Représentation Graphique

par Photographiquement Vôtre » 05 oct. 2006, 17:08

Bonjour,

Comment intégrer mon graphe dans un tableau


Merci d'avance
<?php  
    $visites = array(138, 254, 381, 652, 896, 720, 140, 556, 663, 331, 407, 768); 

    header ("Content-type: image/png");  
    $largeurImage = 600; 
    $hauteurImage = 450; 
    
    $im = ImageCreate ($largeurImage, $hauteurImage)  
            or die ("Erreur lors de la création de l'image");          
    $blanc = ImageColorAllocate ($im, 255, 255, 255);  
    $noir = ImageColorAllocate ($im, 0, 0, 0);   
    $bleu = ImageColorAllocate ($im, 0, 0, 255);         
 
     // on dessine un trait vertical pour représenter l'axe du temps     
    ImageLine ($im, 10, $hauteurImage-10, $largeurImage-10, $hauteurImage-10, $noir); 
    // on affiche le numéro des 12 mois 
    for ($mois=1; $mois<=12; $mois++) { 
        ImageString ($im, 0, $mois*30, $hauteurImage-10, $mois, $noir); 
    } 
     
    // on dessine un trait vertical pour représenter le nombre de visites 
    ImageLine ($im, 10, 10, 10, $hauteurImage-10, $noir); 
      




    // le nombre maximum de visites 
    $visitesMax = 1000; 
     
    // tracé des batons 
    for ($mois=1; $mois<=12; $mois++) { 
        $hauteurImageRectangle = round(($visites[$mois-1]*$hauteurImage)/$visitesMax); 
        ImageFilledRectangle ($im, $mois*45-7, $hauteurImage-$hauteurImageRectangle, $mois*45+7, $hauteurImage-10, $bleu); 
        ImageString ($im, 0, $mois*45-7, $hauteurImage-$hauteurImageRectangle-10, $visites[$mois-1], $noir); 
    } 
         			(ImagePng($im);