Partage
  • Partager sur Facebook
  • Partager sur Twitter

Intrégration d'un graph pchart dans une page web

fonctionne depuis l'exemple mais impossible d'intégrer l'exemple

    15 mai 2017 à 18:55:01

    Bonjour,

    Je projette de me faire une petite station météo avec un RaspberryPi et un Arduino,

    J'ai réussi à installer PChart et ce qui va avec sur le RPi, les exemples fonctionnent mais malheureusement je suis bloqué dans l'intégration sur une de mes pages :/

    En fait j'ai du mal à comprendre comment intégrer les graphes dans ma page :

    Un peu de code pour illustrer tout ça, la page dans laquelle je souhaite intégrer mon graphe :

    <!DOCTYPE html>
    <html>
        <head>
            <!-- En-tête de la page -->
            <meta charset="utf-8" />
    		<link rel="stylesheet" href="style.css" />
            <title>Relevé de températures sur Raspberry Pi - NIK</title>
        </head>
    
    	
        <body>
            <!-- Corps de la page -->
    		<h1>Bienvenue</h1>
    		<p>BDD Complète disponible ici : <a href="phpliteadmin.php">PhpLiteadmin</a></p>
    		<p>Info sur la config du serveur php ici : <a href="infophp.php">PHP 5.0</a></p>
    		<p>Exemple d'utilisation de la librairie <a href="pchart/index.php">PChart 2.1.4</a></p>
    
    			<p> <!-- tableau des 10 derniers relevés -->
    		
    			<?php
    		//Connexion à la BDD SQlite3
    		class MyDB extends SQLite3
    		{
    			function __construct()
    			{
    				$this->open('../db/bddrpi.db');
    			}
    		}
    		$db = new MyDB();
    		if(!$db){
    		echo $db->lastErrorMsg();
    		} else {}
    		
    		// récupératon des données
    		$sql ='
          SELECT * from releves_capteur1
    	  ORDER BY id DESC
    	  LIMIT 10';
    		$ret = $db->query($sql);
       		
    		//affichage sous la forme d'un tableau
    		echo "<table>";
    		echo "<tr><th>Id</th><th>Date</th><th>Heure</th><th>Température (°C)</th></tr>";
    	  while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
    		echo "<tr>";
    		echo "<td>". $row['id']. "</td>";
    		echo "<td>". $row['date']. "</td>";
    		echo "<td>". $row['heure']. "</td>";
    		echo "<td>". $row['temperature']. "</td>";
    		echo "</tr>";
    	}
    	$db->close();
       
       echo "</table>";
    	?>
    			</p>
    			<p>
    			<?php include("graph10last.php"); ?>
    			</p>
    	
    			<h2>Choix de la période à afficher</h2>
    			<?php include("form.php"); ?>
    		
    	
    	</body>
    	
    	
    </html>

    Et ce que contient le fameux "graph10last.php", qui fonctionne quand je l'ouvre seule mais qui fait planter la page entière dans le cas précédent

    <?php   
     /* CAT:Line chart */
    
     /* pChart library inclusions */
     include("pchart/class/pData.class.php");
     include("pchart/class/pDraw.class.php");
     include("pchart/class/pImage.class.php");
    
     /* Create and populate the pData object */
     $MyData = new pData();  
     $MyData->addPoints(array(-4,VOID,VOID,12,8,3),"Probe 1");
     $MyData->addPoints(array(3,12,15,8,5,-5),"Probe 2");
     $MyData->addPoints(array(2,7,5,18,19,22),"Probe 3");
     $MyData->setSerieTicks("Probe 2",4);
     $MyData->setSerieWeight("Probe 3",2);
     $MyData->setAxisName(0,"Temperatures");
     $MyData->addPoints(array("Jan","Feb","Mar","Apr","May","Jun"),"Labels");
     $MyData->setSerieDescription("Labels","Months");
     $MyData->setAbscissa("Labels");
    
    
     /* Create the pChart object */
     $myPicture = new pImage(700,230,$MyData);
    
     /* Turn of Antialiasing */
     $myPicture->Antialias = FALSE;
    
     /* Add a border to the picture */
     $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0));
     
     /* Write the chart title */ 
     $myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>11));
     $myPicture->drawText(150,35,"Average temperature",array("FontSize"=>20,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
    
     /* Set the default font */
     $myPicture->setFontProperties(array("FontName"=>"../fonts/pf_arma_five.ttf","FontSize"=>6));
    
     /* Define the chart area */
     $myPicture->setGraphArea(60,40,650,200);
    
     /* Draw the scale */
     $scaleSettings = array("XMargin"=>10,"YMargin"=>10,"Floating"=>TRUE,"GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE);
     $myPicture->drawScale($scaleSettings);
    
     /* Turn on Antialiasing */
     $myPicture->Antialias = TRUE;
    
     /* Draw the line chart */
     $myPicture->drawLineChart();
    
     /* Write the chart legend */
     $myPicture->drawLegend(540,20,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));
    
     /* Render the picture (choose the best way) */
     $myPicture->autoOutput("pictures/example.drawLineChart.simple.png");
    ?>
    

    Merci d'avance!!

    -
    Edité par Supernik 15 mai 2017 à 18:55:47

    • Partager sur Facebook
    • Partager sur Twitter
      16 mai 2017 à 11:56:52

      Bonjour,

      Supernik a écrit:

      je suis bloqué dans l'intégration sur une de mes pages :/

      Supernik a écrit:

      qui fait planter la page entière dans le cas précédent

      As-tu activé l'affichage des erreurs PHP ? Si oui, as-tu une erreur d'affichée ?
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        16 mai 2017 à 17:58:04

        Bonjour,

        Alors non je n'ai pas pensé à activer l'affichage des erreurs php :/ Je viens de corriger ça, mais ça ne permet pas d'aller plus loin en fait :

        Rien de ma page n'est affiché, à la place j'ai une page entièrement noire avec l'erreur sous la forme d'un .png qui indique :

        "L'image "http://192.168.1.21" ne peut être affichée car elle contient des erreurs"

        • Partager sur Facebook
        • Partager sur Twitter
          19 mai 2017 à 7:33:43

          Je me permets un petit up :)
          • Partager sur Facebook
          • Partager sur Twitter
            19 mai 2017 à 9:33:17

            Je ne connais pas cette librairie, mais apparemment elle dispose d'un debug mode : http://pchart.sourceforge.net/documentation.php?topic=faq.debug

            • Partager sur Facebook
            • Partager sur Twitter
            Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
              23 mai 2017 à 18:08:10

              Bonjour!

              Merci pour ton intérêt, j'ai ajouté les lignes pour le débug mais vu que la page ne s'affiche pas du tout et qu'à la place j'ai une image m'indiquant "L'image "http://192.168.1.21" ne peut être affichée car elle contient des erreurs" je ne peux pas voir ce qui en sort...

              • Partager sur Facebook
              • Partager sur Twitter
                24 mai 2017 à 9:04:01

                As-tu essayé un exemple plus simple fourni sur la page de pchart, pour voir si cela provenait de ton code (et de ta façon d'utiliser la librairie) ou de la librairie en elle-même ?

                N'existe-t-il pas un forum orienté pchart directement ? Tu y aurais peut-être des réponses plus pertinentes ...

                -
                Edité par Benzouye 24 mai 2017 à 9:04:35

                • Partager sur Facebook
                • Partager sur Twitter
                Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                  28 mai 2017 à 18:20:56

                  C'est justement un extrait de la librairie pris tel quel, je pense que c'est jsute ma manière de l'intégrer dans la page qui ne va pas.

                  Je vais aller voir sur leur forum en effet,

                  Merci

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Intrégration d'un graph pchart dans une page web

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown