poseidon1976
Messages postés4Date d'inscriptionmercredi 10 octobre 2007StatutMembreDernière intervention20 novembre 2007
-
18 nov. 2007 à 18:59
poseidon1976
Messages postés4Date d'inscriptionmercredi 10 octobre 2007StatutMembreDernière intervention20 novembre 2007
-
20 nov. 2007 à 21:08
Salut à tous,
Je suis débutante en PHP.
J'ai un programme en PHP qui me permet de tracer un graph mais à partir de données durs.
J'aimerais savoir comment transformer ce programme (ci-joint graph_mixte.php) de façon qu'à partir d'un fichier ascii (ci-joint ascii.txt) je retire les données numériques et que je les utilise pour faire le graph.
graph_mixte.php
<?php
//include ("test.php");
include ("jpgraph.php");
include ("jpgraph_line.php");
include ("jpgraph_bar.php");
// Creation et parametrage des barres
$bplot = new BarPlot($l2datay);
$bplot->SetFillColor("green");
$bplot->SetLegend("conso totale");
// Ajout des courbes et barres au graphique
$graph->Add($bplot);
//$graph->Add($l1plot);
// Ajout d'un titre
$graph->title->Set("Consommation du mois d'Octobre");
$graph->xaxis->title->Set("Appartement");
$graph->yaxis->title->Set("Consommation en kWh");
// Parametrage des font a utiliser
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
// Affichage du graphique
$graph->Stroke("graphoct.png");
contenu de ascii.txt
nom 1 : 234
nom 2 : 324
nom 3 : 213
nom 4 : 215
nom 5: 127
poseidon1976
Messages postés4Date d'inscriptionmercredi 10 octobre 2007StatutMembreDernière intervention20 novembre 2007 19 nov. 2007 à 20:52
Merci pour ta réponse. Je vais essayer de l'intégrer dans mon programme graph_mixte.php à la place de la ligne "$l2datay = array(125,134,137,152,128,654,456,345,256);".
Si maintenant je remplace $l2datay par $valeurs[] j'espère que ça va marcher !
poseidon1976
Messages postés4Date d'inscriptionmercredi 10 octobre 2007StatutMembreDernière intervention20 novembre 2007 19 nov. 2007 à 21:45
Malheureusement cela n'a pas marché et j'obtiens ce message d'erreur:
Chosen locale file ("lang/en.inc.php") for error messages does not exist or is not readable for the PHP process. Please make sure that the file exists and that the file permissions are such that the PHP process is allowed to read this file.
Qu'est ce qui ne va pas dans ce programme:
<?php
//include ("test.php");
include ("jpgraph.php");
include ("jpgraph_line.php");
include ("jpgraph_bar.php");
// récupérer les données d'un fichier ASCII de deux colonnes séparées par ":"
$aTxtFile = file('ascii.txt');
foreach ($aTxtFile as $sLine) {
$aLine = explode(':', $sLine);
$valeurs[] = $aLine;
}
// Creation du graphique
$graph = new Graph(600,300,"auto");
$graph->SetScale("textlin");
// Creation et parametrage des barres
$bplot = new BarPlot($valeurs[]);
$bplot->SetFillColor("green");
$bplot->SetLegend("conso totale");
// Ajout des courbes et barres au graphique
$graph->Add($bplot);
//$graph->Add($l1plot);
// Ajout d'un titre
$graph->title->Set("Consommation du mois d'Octobre");
$graph->xaxis->title->Set("Appartement");
$graph->yaxis->title->Set("Consommation en kWh");
// Parametrage des font a utiliser
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
// Affichage du graphique
$graph->Stroke("graphoct.png");
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201118 19 nov. 2007 à 22:12
Euh ouais, alors j'étais en train de te faire une réponse quand j'ai été distrait...
Euh alors l'erreur que tu rencontres n'est pas liée au problème que tu as soumis au début.
Le fichier demandé lang/en.inc.php n'a pas été trouvé, mais je ne sais pas par quoi. Il ne semble pas apparaitre dans ton script, il est donc surement nécessaire à un des fichiers que tu inclues... Là, moi pas pouvoir t'aider plus que ça... Assure-toi que le fichier demandé est au bon endroit et qu'il peut être lu par php.
Pour ce qui est de la lecture du fichier texte, le code que je t'avais donné était juste pour donner une piste. Concrètement, si tu n'as besoin que des valeurs, il ne faut pas faire tout à fait comme ça.
Remplace :
$valeurs[] = $aLine;
Par :
$valeurs[] = intval($aLine[1]);
Ca ne retourne que la valeur et pas le nom1, nom2 etc. Et surtout, ça retourne un entier et non une chaine.
Sinon, ça doit être bon.
En fait, j'y pense juste : le message d'erreur vient du fait qu'il ne trouve pas le fichier de langue pour afficher les erreurs. Plop. Erreur il y avait, puisque $valeurs était un tableau et que ton script travaille vraissemblablement sur des entiers et non des tableaux.
Du coup, si cette erreur est réglée, il n'y a plus lieu d'afficher de message d'erreur, et donc, l'erreur lors de l'affichage d'erreur ne se produira pas...
Donc attention à régler avant tout le problème de fichier lang/en.inc.php non trouvé.
Euh j'espère que j'ai bon.
Vous n’avez pas trouvé la réponse que vous recherchez ?
poseidon1976
Messages postés4Date d'inscriptionmercredi 10 octobre 2007StatutMembreDernière intervention20 novembre 2007 20 nov. 2007 à 21:08
Merci pour ton aide.
Même si cela ne marche toujours pas, je progresse car en incluant le fichier en.inc.php, j'ai ouvert une fenêtre qui explique mon erreur.
Voici le message:
Si mon anglais est assez bon, il semblerait que le programme ne trouve pas de données et que pour que le graph soit créé il lui faut au moins un point.
Qu'en penses-tu ? Ne faudrait-il pas faire une boucle "for".