Graphique à partir d'un tableau? [Fermé]

Signaler
Messages postés
78
Date d'inscription
mardi 29 avril 2014
Statut
Membre
Dernière intervention
16 mai 2018
-
Messages postés
6650
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
-
Bonjour les gens! ^^

Alors voila je voudrais savoir si il est possible a partir d'un tableau fait en php a l'aide des balises <TABLE> si on peut produire un graphique.

Je m'explique: mon tableau a deux colonnes et 6 lignes, et jusqu'à maintenant je le copier coller dans un tableau , prenez l'image du graphique généré par xl et l'insérer dans ma page php.

Mais je doit le faire assez regulièrement car les valeurs de mon tableau se base sur une base sql dont les valeurs changent chaque semaine. Est-il possible de generer le graphique automatiquement?

Merci d'avance!!

3 réponses

Messages postés
6650
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 286
Bonsoir,

J'ai une solution: RGRAPH
https://html5.immo-scope.com/article/rgraph_debuter

si vous savez remplir le tableau, vous saurez facilement alimenter le graphe...

A+
Messages postés
89
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
15 juin 2014
21
Salut,

http://www.flotcharts.org/

Pour un de mes projets (cadre pro), j'ai découvert et utilisé cette librairie que je trouve pas mal du tout... Mais c'est du Javascript pur sucre... Si j'ai bien compris, la seule dépendance c'est que les navigateurs utilisés propose l'élément "caneva" qui a été introduit par le HTML5 (c'est à dire à mon avis tous les navigateurs récents)...

Bref tu génères en PHP le tableau des donnée (élément TABLE) et un objet JSON qui contiendra les données à faire apparaître dans ton graphique (ou encore mieux tu peux récupérer via Javascript les données contenues dans le tableau)...

S@M
Messages postés
78
Date d'inscription
mardi 29 avril 2014
Statut
Membre
Dernière intervention
16 mai 2018
125
D'abord merci pour vos propositions ^^

@mpmp93: cette solution ma l'air en effet très bien,mais j'ai regarder les pages de démos et dans ces pages il entre des valeurs fixe or ici les valeurs s'obtienne par une requête sql. Et sur le site tu as très peu d'exemple :/ S'aurais tu comment faire?

@-helper- Aurais-tu un exemple de code d'une page ou tu as utilisé cette librairie? parce que les informations sur le sites ne sont pas très clair ><"
Messages postés
6650
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 286
tout est expliqué ici:
https://html5.immo-scope.com/article/rgraph_recupererDonneesPourJavaScript

<canvas id="myCanvas" width="500" height="250">[No canvas support]</canvas>
 
<script>
    window.onload = function ()
    {
        var data = <?php echo $this->rgraphValues; ?>;
 
        var bar = new RGraph.Bar('myCanvas', data)
            .Set('labels', <?php echo $this->rgraphLabels; ?>)
            .Set('colors', ['red'])
            .Set('gutter.left',50)
            .Draw();
    }
</script>


dans cet exemple, les valeurs dites "fixes" sont injectées par
<?php echo $this->rgraphValues; ?>

Tout le travail s'effectue en amont au travers d'une classe RGraph:

<?php
class Application_Model_Rgraph
{
    /**
     * Extraction données d'un champ et mise en forme pour RGraph
     * @param array  $result   tableau données issues de SQL
     * @param string $field    nom du champ dont les données sont à extraire
     * @return string
     */
    public function getValuesForGraph($result, $field) {
        $outArray = array();
        foreach($result AS $row) {
            $outArray[] = $row[$field];
        }
        return '['.implode(',', $outArray).']';
    }
 
    /**
     * Extraction données d'un champ et mise en forme pour labels RGraph
     * @param array  $result   tableau données issues de SQL
     * @param string $field    nom du champ dont les données sont à extraire
     * @return string
     */
    public function getLabelsForGraph($result, $field) {
        $outArray = array();
        foreach($result AS $row) {
            $outArray[] = $row[$field];
        }
        return "['".implode("','", $outArray)."']";
    }
 
}


Dans cette classe, deux méthodes qui récupèrent les labels et les valeurs depuis un tableau de données tel qu'on l'obtient après une requête SQL sur la base de de données.

// on récupère les données de fréquentation
$Frequentation = new Application_Model_Frequentation();
$resultat = $Frequentation->getStatsVisiteRubriques();
 
$Rgraph = new Application_Model_Rgraph();
$values = $Rgraph->getValuesForGraph($resultat, 'nb');