Bonjour,
je viens a votre aide, je suis bloqué depuis plusieurs jours ...
je souhaite créer des graphiques (chart js) le probleme est que je n'arrive pas a arriver à mes fins
j'ai essayer plusieurs codes mais rien y fait et j'ai 0 erreurs qui s'affiche alors je ne sais d'où cela provient
peut-être que votre oeil extérieur va le trouver ...

j"utilise le framework codeigniter donc mon code est en MVC

model : Users_model.php

function statAccueil(){

            $query=$this->db->query("SELECT COUNT(IdSujet) as NOMBRE2 
                                     FROM activite 
                                     WHERE Utilisateur= 'DURI' 
                                     GROUP BY IdSujet");

            if ($query)
            {
                $Data = array();
                while ($donnees=$query->fetch())
                {
                    $NOMBRE2 = $donnees['NOMBRE2'];

                    $Data2[] = $NOMBRE2;
                }
                $Data_Json2 = json_encode($Data2, JSON_NUMERIC_CHECK);  

            }
            return $query->result();

        }

controleur : AccueilControlleur.php

public function graph(){  

            $result['data']=$this->Users_model->statAccueil();
            $this->load->view('stat_accueil',$result);

        }

vue : stat_accueil.php

<html>
    <head>
        <?php include './style/head.php'; ?>
        <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
        <script async="" src="//www.google-analytics.com/analytics.js"></script>
    </head> 
        <center>                    
        <canvas id="birdsChart" width="37%"></canvas>
<script>
var birdsCanvas = $("#birdsChart");

Chart.defaults.global.defaultFontFamily = "Helvetica";
Chart.defaults.global.defaultFontSize = 14;

    var birdsData = {
      labels: ["Spring", "Summer", "Fall", "Winter", "lo"],
      datasets: [{
        data: <?php echo $Data_Json2 ;?>,
        backgroundColor: [
          "rgba(205, 97, 85, 0.5)",
          "rgba(136, 78, 160, 0.5)",
          "rgba(202, 111, 30, 0.5)",
          "rgba(84, 153, 199, 0.2)",
          "rgba(241, 196, 15, 0.2)"
        ],
        borderColor: "rgba(255, 255, 255, 0.8)"
      }]
    };

    var chartOptions = {
      startAngle: -Math.PI / 4,
      legend: {
        position: 'right',

      },
      animation: {
        animateRotate: true
      }
    };
[](null)
    var polarAreaChart = new Chart(birdsCanvas, {
      type: 'polarArea',
      data: birdsData,
      options: chartOptions
    });
</script>
</html> 

je vous remercierai jamais assez si vous m'aider a trouver l'erreur

3 réponses


Bonjour,
Dans la méthode setAccueil, a quoi sert $Data ?
Tu fais un json_encode mais ensuite tu return le result de la query donc a quoi sa sert ?

Dernier point, la balise html "center" est dépréciée depuis plus de 20 ans ....

lina699
Auteur

Bonjour,
pour convertir les données en JSON
en effet je vient de remplacer la variable query par $datajson2 :

return $Data_Json2->result();

mais ça ne marche toujours pas ...

Bonsoir.
Ce que tu fais n'a pas de sens.

Dans le premier bloc de code:
Tu définies la variable nommée Data avec un tableau vide, ensuite tu tentes d'incrémenter une variable nommée Data2.
Par conséquent tu déclares une variable que tu n'utilises pas par la suite, en plus de ça tu utilises une variable que tu n'as pas définies.

Dans le second bloc de code:
Tu définies un index de tableau sur une variable qui n'est définie à aucun moment.

Tu devrais revoir les bases niveau PHP.