Graphique à partir d'un tableau?

Fermé
mugiwara437 Messages postés 85 Date d'inscription mardi 29 avril 2014 Statut Membre Dernière intervention 23 juillet 2021 - 28 mai 2014 à 12:49
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 30 mai 2014 à 08:12
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

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
28 mai 2014 à 18:34
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 mercredi 21 mai 2014 Statut Membre Dernière intervention 15 juin 2014 27
Modifié par -helper- le 29/05/2014 à 17:52
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 mardi 29 avril 2014 Statut Membre Dernière intervention 23 juillet 2021 154
30 mai 2014 à 08:01
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 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
Modifié par mpmp93 le 30/05/2014 à 08:14
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