Bonjour à tous,
Je suis en train de me faire la main sur Chart.js, et j'aimerais maintenant faire quelques graphiques depuis des requêtes sur une base PostGreSQL (mais j'ai peur que ce soit au delà de mes piètres compétences ).
Voici un JSFiddle pour mes essais actuels : https://jsfiddle.net/yawL2v99/
J'arrive plus ou moins à créer, en PHP, un fichier JSON depuis mes requêtes via ce script (adapté de différents modèles), mais je dois faire une erreur car mes clés sont dupliqués.
Voici le script PHP :
Voici ce qui en sort :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php # Connect to PostgreSQL database $conn = new PDO('pgsql:host=localhost;dbname=mydb','myuser','mypwd'); # Build SQL SELECT statement and return the geometry as a GeoJSON element $sql = "SELECT myfields FROM mytables"; # Try query or error $rs = $conn->query($sql); if (!$rs) { echo 'An SQL error occured.\n'; exit; } #loop through the returned data $data = array(); foreach ($rs as $row) { $data[] = $row; } header('Content-type: application/json'); echo json_encode($data); $conn = NULL; $rs=NULL; ?>
alors que cela devrait être :
Code : Sélectionner tout - Visualiser dans une fenêtre à part [{"mois":"1","0":"1","v1":56066,"1":56066,"v2":267,"2":267,"v3":120,"3":120},{"mois":"2","0":"2","v1":4119,"1":4119,"v2":187,"2":187,"v3":617,"3":617},{"mois":"3","0":"3","v1":7941,"1":7941,"v2":346,"2":346,"v3":796,"3":796},{"mois":"4","0":"4","v1":21640,"1":21640,"v2":356,"2":356,"v3":993,"3":993},{"mois":"5","0":"5","v1":48836,"1":48836,"v2":669,"2":669,"v3":2407,"3":2407},{"mois":"6","0":"6","v1":44853,"1":44853,"v2":648,"2":648,"v3":4056,"3":4056},{"mois":"7","0":"7","v1":40625,"1":40625,"v2":779,"2":779,"v3":4169,"3":4169},{"mois":"8","0":"8","v1":25383,"1":25383,"v2":501,"2":501,"v3":2138,"3":2138},{"mois":"9","0":"9","v1":13772,"1":13772,"v2":183,"2":183,"v3":615,"3":615},{"mois":"10","0":"10","v1":6378,"1":6378,"v2":144,"2":144,"v3":613,"3":613},{"mois":"11","0":"11","v1":2197,"1":2197,"v2":119,"2":119,"v3":115,"3":115},{"mois":"12","0":"12","v1":1276,"1":1276,"v2":0,"2":0,"v3":4,"3":4}]
(ça, je l'ai créé directement depuis PostGreSQL avec les fonction array_to_json(array_agg(row_to_json(ma_requete)))
Code : Sélectionner tout - Visualiser dans une fenêtre à part [{"mois":1,"v1":56066,"v2":267,"v3":120},{"mois":2,"v1":4119,"v2":187,"v3":617},{"mois":3,"v1":7941,"v2":346,"v3":796},{"mois":4,"v1":21640,"v2":356,"v3":993},{"mois":5,"v1":48836,"v2":669,"v3":2407},{"mois":6,"v1":44853,"v2":648,"v3":4056},{"mois":7,"v1":40625,"v2":779,"v3":4169},{"mois":8,"v1":25383,"v2":501,"v3":2138},{"mois":9,"v1":13772,"v2":183,"v3":615},{"mois":10,"v1":6378,"v2":144,"v3":613},{"mois":11,"v1":2197,"v2":119,"v3":115},{"mois":12,"v1":1276,"v2":0,"v3":4}]
Une fois le JSON créé en PHP, je pense qu'il est possible de le charger avec JQquery/AJAX (reprenez moi si je dis une bêtise), avec quelque chose de ce genre $.getJSON("chemin/monscript.php", ...), et de stocker le contenu dans une variable, que pourra utiliser Chart.js
Mais même si j'y parvenais, je ne sais pas trop comment, ensuite, utiliser les données de ce JSON pour mes datasets et labels de graphiques.
Si certains d'entre-vous peuvent m'aider à y voir plus clair, que ce soit pour
- l'utilisation par chart de la variable en JSON,
- le chargement JQuery/AJAX du fichier JSON depuis le PHP
- corriger le script PHP (même si, même avec les doublons, il serait quand même fonctionnel)
Merci à vous !!!
Partager