JPGraph et requête LIMIT

Rechercher
Boutique en ligne, solution e-commerce, script PHP et PERL : RAYNETTE

JPGraph et requête LIMIT

Par papy71  -  27 reponses  -  Le 09/06/2018 14:07  -  Editer  - 

Bonjour,
J'ai un problème dans le retour avec 2 requêtes, la première affiche un tableau, la seconde un graph histo...

Mon code n°1

<?php
 $nbr = 5;
 $dif = 15;

    $bdd = MySqli_connect("****.alwaysdata.net", "***", "******", "****") ;

     $resultat = mysqli_query($bdd, 'SELECT  Id, PV FROM annuelle LIMIT '.$nbr.', '.$dif);
    while($donnees = mysqli_fetch_assoc($resultat))
    {
    $tableau[$donnees['Id']-1] = $donnees['PV']; 
    $njour = $donnees['Id'];
    $PV = $donnees['PV'];
    echo 'njour ', $njour,' et PV ', $PV, '<Br />';
    }
    exit;
?>

J'ai bien 15 lignes de l'indice 5 à 19 c'est parfait.

Mon code n°2

<?php

//  Pour réaliser l'histo d'une table
 $nbr = 5;
 $dif = 15;

    $bdd = MySqli_connect("*****.alwaysdata.net", "*****", "******", "pv-solaire_recup") ;

    require_once ('src/jpgraph.php');
    require_once ('src/jpgraph_line.php');
    require_once ('src/jpgraph_bar.php');

 // Ma requête
 $resultat = mysqli_query($bdd, 'SELECT  Id, PV FROM annuelle LIMIT 5,15');
    while($donnees = mysqli_fetch_assoc($resultat))

  {
    $tableau[$donnees['Id']-1] = $donnees['PV']; 
}
// Création du conteneur
    $graph = new Graph(400,150);

// Fixer les marges
    $graph->img->SetMargin(50,20,50,50);    

// A détailler
    $graph->SetScale("textlin");

// Afficher la grille de l'axe des ordonnées
    $graph->ygrid->Show(1);

// Créer une courbes
    $histo = new BarPlot($tableau, $donnees);

// Paramétrage des axes
    $graph->xaxis->title->Set("Jours");
    $graph->yaxis->title->Set("K/Watts");

// Ajouter la courbe au conteneur
    $graph->Add($histo);
    $graph->Stroke();
?>

Ici, j'ai bien un graph, mais de l'indice 0 à 15 avec les bonnes valeurs à partir de l'indice 5 jusqu'à 15.

Pourquoi celà.
j'ai une table avec 2 colonnes, 'Id' et 'PV', dedans il y a 30 lignes.
Mon programmes n°2 est au stricte minimum.

Suite a mon message précédent, JPGraph n'accepte pas l'appel d'un sous programme.

Ma question est la suivante:
comment à partir d'un sous programme choix.php, afin de choisir un mois et une année avec 2 listes déroulantes, je peux appeler ma base?

par exemple entre le 1 mars 2018 au 31 mars 2018.

si,je passe, pour notre exemple: LIMIT 60,90 J'ai bien mon graph, mais de 1 à 90 avec rien avant 60 puis mes histo de 60 à 90 avec les bonnes valeures.

0ù est mon erreur, dans ce dernier cas?

Je cherche à résoudre ces problèmes, depuis pas mal de temps....

Merci pour l'aide.
Cordialement.
papy71

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 10/06/2018 00:15  -  Haut de page  - 

Bonsoir Papy71,
je ne suis pas encore tout à fait opérationnel pour m'avancer loin dans le code, je dois remettre en place tout mon environnement.

Mais en attendant, il faut inspecter quelques éléments : d'abord le retour de la requête SQL : s'il doit y avoir 15 lignes de données, vérifier qu'on a bien ces 15 lignes et non 30 par exemple. S'il y a des doublons, alors c'est qu'il y a une erreur dans la requête SQL. Pour vérifier ça, il faut exécuter la requête indépendamment dans un client MySQL en ligne de commande ou à la rigueur dans phpMyAdmin pour vérifier quel est le retour exact.

Enfin, j'ai un doute sur cette requête à cause du nom des variables définies au début et qui ne sont en réalité jamais utilisées, $nbr et $dif valant respectivement 5 et 15. Si je traduis $dif par « différence » et $nbr par « nombre », ça ne donnera pas ce résultat en sortie de la manière dont c'est indiqué dans la requête.

En mettant « LIMIT 5, 15 », ça veut dire « à partir de la cinquième ligne, les 15 prochaines lignes correspondantes »

Donc déjà on ne peut pas avoir 30 lignes...

Extrait de la doc MySQL sur la clause LIMIT :

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return.

En français, ça donne à peu près :
Avec deux arguments, le premier argument indique la ligne à partir de laquelle on retourne des résultats, le second le nombre maximum delignes de résultats

 
Par papy71  -  Le 12/06/2018 11:13  -  Haut de page  - 

Bonjour Cyrano,
Merci pour l'aide.
Je ne sais le pourquoi, j'ai ré-installé JPGraph et il semble que pas mal de chose soit règlé.
Donc, je reviens à mon problème précédent.

J'ai retouché le code,

<?php 
// Pour réaliser l'histo d'une table
date_default_timezone_set('Europe/Paris');
$njour = 1;
$dif = 0;

echo '<div style="background-color: #DDEEFF; border:2px solid black;
color:Blue; font-size:110%; padding:1em;"><center>';

require_once ('choix.php'); // choix->2 listes déroulantes 'mois' 'année'

// déclaration
$tableauDate = array();
$tableauProduc = array();

// calcul l'Id depuis le début du fichier
$datetime1 = new DateTime('2018-01-01');
$datetime2 = new DateTime($an . '-' . $m1 . '-' . $j);
$interval = $datetime1->diff($datetime2);
$njour = $njour + $interval->format('%R%a days');

// La connexion
$bdd = MySqli_connect("mysql-pv-solaire.alwaysdata.net", "****", "*****", "****");

// appel JPGraph
require_once ('src/jpgraph.php');
require_once ('src/jpgraph_line.php');
require_once ('src/jpgraph_bar.php');

// Ma requête
$resultat = mysqli_query($bdd, 'SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT ' . $njour . ', ' . $dif) or die(mysql_error());
while ($row = mysqli_fetch_assoc($resultat)) {
    $tableauDate[] = 'Date' . $row['Date'];
    $tableauProduc[] = $row['PV'];
}

// Création du conteneur
$graph = new Graph(1200, 350);

// Fixer les marges
$graph->img->SetMargin(50, 20, 50, 50);

// A détailler
$graph->SetScale("textlin");

// Afficher la grille de l'axe des ordonnées
$graph->ygrid->Show();

// Créer une courbes
$plot = new BarPlot($tableauProduc);

// Paramétrage des axes
$graph->xaxis->title->Set("Jours");
$graph->yaxis->title->Set("K/Watts");

// Ajouter la courbe au conteneur
$graph->Add($plot);

$graph->Stroke();

?>

après vérification de la façon suivante:

printf('<pre>%s</pre>', print_r($tableauAnnees,1));
printf('<pre>%s</pre>', print_r($tableauNombreVentes,1));
exit;

que l'enlève pour ne pas polluer le graph.
j'ai bien ceci:

Array
(
    [0] => Date2018-02-01
    [1] => Date2018-02-02
    [2] => Date2018-02-03
    [3] => Date2018-02-04
    [4] => Date2018-02-05
    [5] => Date2018-02-06
    [6] => Date2018-02-07
    [7] => Date2018-02-08
    [8] => Date2018-02-09
    [9] => Date2018-02-10
    [10] => Date2018-02-11
    [11] => Date2018-02-12
    [12] => Date2018-02-13
    [13] => Date2018-02-14
    [14] => Date2018-02-15
    [15] => Date2018-02-16
    [16] => Date2018-02-17
    [17] => Date2018-02-18
    [18] => Date2018-02-19
    [19] => Date2018-02-20
    [20] => Date2018-02-21
    [21] => Date2018-02-22
    [22] => Date2018-02-23
    [23] => Date2018-02-24
    [24] => Date2018-02-25
    [25] => Date2018-02-26
    [26] => Date2018-02-27
    [27] => Date2018-02-28
)

Array
(
    [0] => 1.79
    [1] => 2
    [2] => 2
    [3] => 3
    [4] => 1
    [5] => 1
    [6] => 0
    [7] => 1
    [8] => 6
    [9] => 0
    [10] => 2
    [11] => 7
    [12] => 8
    [13] => 2
    [14] => 1
    [15] => 3
    [16] => 1
    [17] => 6
    [18] => 6
    [19] => 5
    [20] => 9
    [21] => 8
    [22] => 1
    [23] => 6
    [24] => 10
    [25] => 11
    [26] => 11
    [27] => 7
)

erreur en haut de mon ecran noir:

l'image<<http://mysql-pv-solaire.alwaysdata.net/Graphique.php?page=histo>>ne peut etre affiché car elle contient des erreurs.

Merci pour l'aide Cyrano.

 
Par Cyrano  -  Le 12/06/2018 11:38  -  Haut de page  - 

Ok, mais dans ce cas, il faudrait tenter d'ouvrir l'image générée avec un éditeur de texte et pas une visionneuse, parce que les erreurs sont probablement écrites dedans, ce qui du reste expliquerait pourquoi elle ne s'affiche pas.

Il faut repérer où elle est stockée et l'ouvrir à partir de là, typiquement avec un click-droit dessus et « Ouvrir Avec » et choisir un éditeur du style Notepad++ ou à la rigueur WordPad, voire au pire avec BlocNote.

 
Par papy71  -  Le 12/06/2018 16:28  -  Haut de page  - 

Cyrano, le plus simple je pense, comme ce que j'ai fait est en ligne c'est de voir le résultat directement dessus le site.

Dans le choix, seul les 4 premiers mois ( les autres mois donnent de 0 ) de l'année 2018 fonctionnent, sinon avant 2018 et après 2018 retourne rien ou erreur suivant les cas, comme les années ne sont pas dans la table.

http://pv-solaire.alwaysdata.net/index.html

je vérifie avec Firefox, je n'ai pas l'option 'ouvrir avec ' je ne sais comment cela passe avec d'autres logiciels.

Je suis en Win 10 64 bits.

Merci pour l'aide

 
Par Cyrano  -  Le 12/06/2018 18:12  -  Haut de page  - 

ôtez-moi d'un doute : ce n'est pas développé en local avec une installation de type WAMPServer ??

Parce que je vois bien en effet le message d'erreur, mais c'est le fichier généré qui aurait été pratique : là, il faudrait récupérer l'image générée telle quelle via ftp pour l'examiner

 
Par papy71  -  Le 12/06/2018 18:49  -  Haut de page  - 

Voilà comment je pratique...

  • j'écris le code dans Notepad ++
    j'enregistre

  • Ensuite j'utilise Filezilla pour me connecter sur le serveur alwaysdata sur mon site, et telecharge mes fichiers ou simplement celui qui me convient.

-Ensuite le prends Firefox et mon URL

Ma table a été chargé avec EasyPHP directement du serveur always.

Always possède les php 4.4 -> jusqu'à php 7.2
Je peux modifier PHP.ini

Voilà, je h'ai pas réussi à configurer Easyphp avec Windows 10 donc je ne suis pas en local, j'ai pas Apache, ni MySQl configuré.

J'ai trouvé celle solution, apparemment comme je vois ce que je modifie au fil de la programmation, cela me suffit. C'est autant de logiciel de moins sur mon ordi.
Il y a probablement mieux et aussi installer un debugger je pense, mais là, j'ai pas de connaissance pour le choix du logiciel et le configurer correctement.
Je vie avec mes vieux acquis, et avec le peu de vision que me reste....

Merci d'avance.

 
Par Cyrano  -  Le 12/06/2018 20:31  -  Haut de page  - 

Ok, mais lors de la génération de l'image avec JPgraph, une image doit être créée quelque part, et doit être récupérable avec Filezilla, c'est ça qu'il faut inspecter.

Un trux à tester aussi, en début de script, ajouter un

ini_set(display_error, 1);

Mais selon l'hébergeur, il n'est pas certain que ça marche, certains bloquent cette fonction.

 
Par papy71  -  Le 12/06/2018 21:41  -  Haut de page  - 

Après avoir mis votre ligne en début, sous <?php en ligne 3

Voilà le message dès le lancement de l'appel du graph.

Warning: Use of undefined constant display_error - assumed 'display_error' (this will throw an Error in a future version of PHP) in /home/pv-solaire/www/Graphique.php on line 3

Puis ensuite j'ai demandé le mois de février 2018 et nous sommes au même résultat qu'avant, une page noir.

Il est vrai que j'ai ce message, celui en dessous, dès l'appel du graph, je pense que la cause en vient qu'il n'y a pas encore de valeurs choisi.

JpGraph Error: 25121 Empty input data array specified for plot. Must have at least one data point.

Je ne sais comment le supprimer, probablement dans l'ordre des opérations effectuées du programme, mais où ...

Merci.

 
Par Cyrano  -  Le 12/06/2018 21:55  -  Haut de page  - 

Ok, autant pour moi, il fallait mettre le « display_error » entre guillemets

ini_set('display_error', 1);

Et là, il n'y aura pas d'erreur sur ce point.

Pour l'erreur avec jpGraph, elle semble indiquer qu'il n'y a aucune valeur à traiter, il doit y avoir une boulette quelque part. On va procéder à quelques modifications mineures de vérification.
On va commencer ici :

    // Ma requête  
    $resultat = mysqli_query($bdd, 'SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT ' . $njour . ', ' . $dif) or die(mysql_error());  
    while ($row = mysqli_fetch_assoc($resultat)) {  
        $tableauDate[] = 'Date' . $row['Date'];  
        $tableauProduc[] = $row['PV'];  
    }  

On va modifier de cette manière :

    // Ma requête  
    $sql  = 'SELECT Id, Date, PV, Prix, Soleil '.
            'FROM annuelle '.
            'GROUP BY Date '.
            'LIMIT ' . $njour . ', ' . $dif;
    $resultat = mysqli_query($bdd, $sql) or die(mysql_error());  
    while(false !== ($row = mysqli_fetch_assoc($resultat)))
    {  
        $tableauDate[] = 'Date' . $row['Date'];  
        $tableauProduc[] = $row['PV'];  
    }
    /* Vérification du contenu collecté : */
    echo('<pre>');
    var_dump($tableauProduc);
    echo('</pre>');
    die();

Le « die() » va servir temporairement sans déclencher la génération de l'image. Et ce qui sera affiché donnera une assez bonne idée de ce qui est envoyé un peu plus loin dans le code :

    // Créer une courbes  
    $plot = new BarPlot($tableauProduc);  

Il faudra revenir avec le résultat pour qu'on puisse avancer

 
Par papy71  -  Le 12/06/2018 22:39  -  Haut de page  - 

Voilà le retour, après modif comme demandé,
dès l'appel du graph donc avant de choisir un mois et année, j'ai ceci:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 134217736 bytes) in /home/pv-solaire/www/Graphique.php on line 40

Je choisi février 2018 et c'est idem pour le message, cela ne va pas plus loin..

 
Par Cyrano  -  Le 12/06/2018 22:43  -  Haut de page  - 

Il y a quoi à la ligne 40 ?

 
Par papy71  -  Le 12/06/2018 22:45  -  Haut de page  - 

$tableauDate[] = 'Date' . $row['Date'];

 
Par Cyrano  -  Le 12/06/2018 22:57  -  Haut de page  - 

Ça, c'est tout à fait inattendu, et ce n'est pas normal... Atteindre un blocage mémoire de 256Mo avec 15 ou 30 lignes de données, ce n'est pas possible, il doit y avoir autre chose qui se passe ailleurs, et avant.

On peut faire un test : commentez la ligne 40 et essayez à nouveau.

 
Par papy71  -  Le 12/06/2018 23:00  -  Haut de page  - 

Cyrano, comment je commente la ligne 40 du programme ?

 
Par Cyrano  -  Le 12/06/2018 23:28  -  Haut de page  - 

COmme n'importe quelle ligne de code :

$var = 'valeur';
// Ligne de commentaire
// $var = 'autre valeur non prise en compte';
 
Par papy71  -  Le 13/06/2018 11:18  -  Haut de page  - 

Bonjour Mr Cyrano,

J'ai passé votre ligne " $var = 'valeur'; " et laissé le reste en place, message inchangé sauf avec ligne 41 en bout de ligne.

40 $var = 'valeur';
41        $tableauDate[] = 'Date' . $row['Date'];  
42        $tableauProduc[] = $row['PV'];  

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 134217736 bytes) in /home/pv-solaire/www/Graphique.php on line 41

j'ai placé // devant la ligne 41, message inchangé mais ligne 42 en fin de message.
j'ai placé // devant la ligne 42, dans un premier temps il ne se passe rien mais l'ordi cherche puis le message suivant

Fatal error: Maximum execution time of 120 seconds exceeded in /home/pv-solaire/www/Graphique.php on line 38

Je ne suis pas planté, j'ai la main...

ensuite j'ai modifier avec un echo:

37 $resultat = mysqli_query($bdd, $sql) or die(mysql_error());  
38    while(false !== ($row = mysqli_fetch_assoc($resultat)))
39   {  
40
41 echo 'je cherche une solution ! ';
42       $tableauDate[] = 'Date' . $row['Date'];  
43       $tableauProduc[] = $row['PV'];  
44    }
45    /* Vérification du contenu collecté : */
46    echo('<pre>');
47   var_dump($tableauProduc);
48    echo('</pre>');
49    die();

message: Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 134217736 bytes) in /home/pv-solaire/www/Graphique.php on line 42

puis ceci

41 echo 'je cherche une solution ! ';
42       //$tableauDate[] = 'Date' . $row['Date'];  
43       //$tableauProduc[] = $row['PV'];  
44    }

Résultat :

je cherche une solution ! je cherche une solution ! je cherche une solution !.......

sur X pages et tout au bout message identique que précédent.

mais, j'ai la main avec mes listes déroulantes et c'est reparti pour des pages de je cherche une solution !....

Voilà ...

 
Par Cyrano  -  Le 13/06/2018 11:31  -  Haut de page  - 

Ok, on va avancer, mais l'idée était de n'enregistrer qu'une seule des deux variables dans la boucle, donc commenter la ligne 42 mais laisser la ligne 43 normale.

Il y a peut-être un problème avec la valeur $row['Date'].
Retirez aussi la ligne echo 'je cherche une solution ! '; ou commentez-la, puis refaite le test et dites-moi ce que ça donne.

 
Par papy71  -  Le 13/06/2018 12:03  -  Haut de page  - 

Avec ceci:
42 $ainsi = 'Comme cela ?';
43 $tableauProduc[] = $row['PV'];
nous domme même résultat
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 268435464 bytes) in /home/pv-solaire/www/Graphique.php on line 43

puis
41 $esbon = 'vous cherchez, merci';
42 $ainsi = 'Comme cela ?';
43 $tableauProduc[] = $row['PV'];
même erreur

C'est comme vous le demandiez ?

 
Par Cyrano  -  Le 13/06/2018 12:14  -  Haut de page  - 

Papy71, ne recopiez pas bêtement ce que je vous indique, suivez les indications que vous comprenez et si il y a un doute, posez une question.

Me rajouter des variables $ainsi ou $esbon* est en l'occurrence sans intérêté

Il y a un dépassement de capacité de mémoire parce qu'il doit y avoir une boucle sans fin quelque part, il faut arriver à la débusquer.
Tout à l'heure, il y avait l'affichage de « je cherche une solution! » qui se répétait, mais ça n'aurait pas du se répéter au-delà du nombre de lignes retournées par la requête. S'il y en a davantage, c'est qu'il y a un problème dans la requête et que ça retourne largement plus de données que ce qui est attendu.

On va ajouter un détail pour vérifier la requête exacte qui est exécutée :

// Ma requête  
$sql  = 'SELECT Id, Date, PV, Prix, Soleil '.
        'FROM annuelle '.
        'GROUP BY Date '.
        'LIMIT ' . $njour . ', ' . $dif;
/* Vérification de la requête */
echo('<pre>');
var_dump($sql);
echo('</pre>');
die();
$resultat = mysqli_query($bdd, $sql) or die(mysql_error());  
while(false !== ($row = mysqli_fetch_assoc($resultat)))
{  
    $tableauDate[] = 'Date' . $row['Date'];  
    $tableauProduc[] = $row['PV'];  
}
/* Vérification du contenu collecté : */
echo('<pre>');
var_dump($tableauProduc);
echo('</pre>');
die();

Ça expliquera au passage pourquoi je définis la requête AVANT de l'exécuter. J'ai aussi rajouté un die (avant exécution), pour l'instant, on doit déjà vérifier ce point, et éventuellement la tester avec phpMyAdmin sur la base pour vérifier ce qui est retourné.

 
Par papy71  -  Le 13/06/2018 13:56  -  Haut de page  - 

mes excuses...

Après changement de la requête.
au lancement,
nous avons:
string(74) "SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT 164, 0"

Je demande janvier 2018
string(73) "SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT 1, 31"

février 2018
string(74) "SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT 32, 28"

mars 2018
string(74) "SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT 60, 31"

avril 2018
string(74) "SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT 91, 30"

mai 2018
string(75) "SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT 121, 31"

juin 2018
string(75) "SELECT Id, Date, PV, Prix, Soleil FROM annuelle GROUP BY Date LIMIT 152, 30"

mai jusqu'à décembre affiche string(75) et le complément du n°jour de l'année et correspond au nbre du jour du mois.

Il semble y avoir un problème au départ 164, 0

 
Par Cyrano  -  Le 13/06/2018 14:02  -  Haut de page  - 

ça en a tout l'air en effet.
C'est donc ce point particulier qu'il faut commencer par corriger afin que nous ayons des valeurs correctes avant exécution.

 
Par papy71  -  Le 13/06/2018 14:31  -  Haut de page  - 

Cyrano,

Je m’aperçois que je ne ferme pas mes fichier, et autres requêtes, c'est peut être une cause de conflit...

 
Par Cyrano  -  Le 13/06/2018 14:34  -  Haut de page  - 

Possible ça, ça pourrait plomber la mémoire.

 
Par papy71  -  Le 13/06/2018 16:17  -  Haut de page  - 

fermeture des requêtes, mais pas de changements...tjs même message de mémoire.

 
Par Cyrano  -  Le 13/06/2018 16:26  -  Haut de page  - 

Je manque de temps, sinon je demanderais à voir le code complet du fichier pour inspecter ça en détail. Il y a forcément une boulette quelque part.

Dans tous les cas, une chose que j'ignore, c'est au sujet de la requête : est-elle conforme à ce qui était prévu, sinon, qu'est-ce qui était attendu et, conséquemment, quelle différence ça fait ? Est-ce que cette requête a été testée avec phpMyAdmin pour vérifier le résultat ?

Il faut avancer un pas à la fois, ne pas sauter à une étape tant que la précédente n'est pas validée.Pour l'instant, l'étape de la construction de la requête SQL ne semble pas validée, donc il faut résoudre ça en premier lieu. On verra la suite après.

 
Par papy71  -  Le 14/06/2018 18:45  -  Haut de page  - 

Bonjour Cyrano,

je suis reparti de zéro, réinstallation de la table, reprise ligne par ligne de mon programme, dans un premier sans connexion à la table puis avec connexion etc... Je suis retombé avec les bons résultats comme dans mon post du 12/06/2018 11:13 ci-dessus.
Finalement, je me suis penché sur le graph et après plusieurs essais sans la table, j'ai remarqué qu'il y avait une image qui portait le non de mon programme.
Ensuite, pas tâtonnement, mon problème venait de la dernière ligne, l'affichage de l'image, j'ai trouve sur mon site cette image.

Conclusion, il faut l'appeler et non uniquement vouloir afficher l'image
le problème est bon pour moi, je ne sais si c'est correcte.

Au lieu de
$graph->Stroke();

IL fallait:
$graph->Stroke("graph.png"); echo "<img src='graph.png' />";

Concernant les 164 de retour avec les tests de votre aide, ils sont tjs là, mais ne semble pas avoir d'impact sur le graph....

j'ai encore du travail, je veux que les valeurs s'affichent sous le passage de la souris dans les graphiques, afficher les dates au lieu du N° du jour etc...

Mais un grand merci pour les tests et l'aide.

 
Par Cyrano  -  Le 14/06/2018 20:42  -  Haut de page  - 

Pas de quoi, content de voir que c'est en bonne voie de résolution.

Pour les infobulles au passage de la souris sur certains points de l'image, ça ne va pas être simple, il va falloir créer des maps, et pour ça, déterminer les coordonnées de ces points sur l'image... pas de la tarte. Bon courage.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !