Graphique à partir d'un tableau?

mugiwara437 Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   -  
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   -
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!!
A voir également:

3 réponses

mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
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+
0
-helper- Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   27
 
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
0
mugiwara437 Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   155
 
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 ><"
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
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');
0