Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2011, 15h05   #1
Invité de passage
 
Lucas Vizcaïno
Inscription : septembre 2010
Messages : 14
Détails du profil
Informations personnelles :
Nom : Lucas Vizcaïno

Informations forums :
Inscription : septembre 2010
Messages : 14
Points : 1
Points : 1
Par défaut Module Graphique PHP

Bonjour,

Je travail depuis peu avec PHP et je voudrais génerer des graphiques à partir des résultats de mes requêtes SQL. En parcourant un peu le site, j'ai trouvé plusieurs module me permettant de créer des graphiques.

Ma question concerne l'affichage de ces graphiques, j'ai besoin d'afficher un graphique contenant 2880 points au minimum et 89280 points au maximum.
Ce qui correspond à une periode comprise entre 1 et 31 jours avec un point toutes les 30 secondes.

Je me demande donc si ces modules graphiques sont capables d'afficher un graphique de 90000 points. Vu le nombre de pixels de l'écran je me doute bien que ce n'est pas possible d'afficher les 90000 points côte à côte surtout que mon graphique ne doit pas exeder 600 pixels de largeur, mais est_il possible d'obtenir tout de même la forme de la courbe ?


Voila, j'espère que ma question est conpréhensible.
Merci.
iPh-Lucas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 15h16   #2
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Je ne sais pas si c'est possible mais une solution serait de faire pour une periode de 2-3minutes la moyenne et ainsi, tu réduirais le nombre de pts.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 15h25   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Il faut impérativement que tu groupes les résultats ou sinon ça va ramer méchant

Tu peux également te tourner vers les solution de graphique JavaScript, c'est ça de moins en charge pour ton serveur: http://g.raphaeljs.com/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 16h03   #4
Invité de passage
 
Lucas Vizcaïno
Inscription : septembre 2010
Messages : 14
Détails du profil
Informations personnelles :
Nom : Lucas Vizcaïno

Informations forums :
Inscription : septembre 2010
Messages : 14
Points : 1
Points : 1
Citation:
Envoyé par radicaldreamer Voir le message
Je ne sais pas si c'est possible mais une solution serait de faire pour une periode de 2-3minutes la moyenne et ainsi, tu réduirais le nombre de pts.
J'y ai penser, faire une moyenne sur 15 minutes me permetrait d'afficher le mois entier avec environ 3000 points, mais je ne vois pas vraiment comment faire cette moyenne..

Exemple en faisant des moyennes sur 3 minutes :

http://hpics.li/dc05402


Existe-t-il une requête capable de faire des moyennes par tranche de 3 minutes ? oubien d'autre solution..
iPh-Lucas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 16h07   #5
Invité de passage
 
Lucas Vizcaïno
Inscription : septembre 2010
Messages : 14
Détails du profil
Informations personnelles :
Nom : Lucas Vizcaïno

Informations forums :
Inscription : septembre 2010
Messages : 14
Points : 1
Points : 1
Citation:
Envoyé par Benjamin Delespierre Voir le message
Il faut impérativement que tu groupes les résultats ou sinon ça va ramer méchant

Tu peux également te tourner vers les solution de graphique JavaScript, c'est ça de moins en charge pour ton serveur: http://g.raphaeljs.com/
Excuse moi mais je ne comprend pas vraiment ce que tu veux dire par grouper les résultats.
Une solution JavaScript me permetrait d'afficher un plus grand nombre de points ? Ou simplement d'améliorer le temps de réponse ?

Le problème c'est que si j'utilise du JavaScript, j'ai besoin d'une solution toute faite car je ne connais pas le Java, à chaque fois que je l'utilise, ce n'est pas moi qui tape le code..
iPh-Lucas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 16h48   #6
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
En sql:
Code sql :
SELECT AVG( moyenne ) AS moyenneclasse FROM etudiant ;

A toi d'adapter et de faire une requete SQL.
__________________

En php:
Si tu sais que tes points sont toutes les 30s:
15min = 15*2. 30

Code :
1
2
3
4
5
6
7
8
9
10
 
$val = 0;
while(...){
  if($val != 29){
    $val = $val + $valeur_point;
  }else{
    echo $val/30;
    $val = 0;
 
}
Un truc du genre.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 17h22   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Citation:
Excuse moi mais je ne comprend pas vraiment ce que tu veux dire par grouper les résultats.
Oui, comme Radicaldreamer t'en a parlé, par lots de X minutes. Voir plus bas.

Citation:
Une solution JavaScript me permetrait d'afficher un plus grand nombre de points ? Ou simplement d'améliorer le temps de réponse ?
Les deux mon n'veux.

Citation:
Le problème c'est que si j'utilise du JavaScript, j'ai besoin d'une solution toute faite car je ne connais pas le Java, à chaque fois que je l'utilise, ce n'est pas moi qui tape le code..
Y'a tous les exemples de codes sur le site de graphael, c'est pas bien compliqué et ça ressemble à jQuery. Enfin, si tu n'es pas à l'aise et que tu ne veux pas te compliquer la vie, fais du PHP.

Une solution simple pour grouper les éléments par lots est d'alouer un tableau de n entrées (pour n lots).
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
 
$start_time = time() - 24 * 3600;
 
$results = $pdo->query("SELECT `timestamp`,`count` FROM `table` WHERE `timestamp`>'$start_time'");
 
// Un tableau pour 24h par exemple
$data = array_fill(0, 24, 0);
 
// $results est ton résultat de bdd
foreach ($results as $row) {
	$offset = ceil(($row['timestamp'] - $start_time) / 3600);
	$data[$offset] += $row['count'];
}
Si tu arrives à grouper dans la requête SQL c'est encore mieux.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 09h29   #8
Invité de passage
 
Lucas Vizcaïno
Inscription : septembre 2010
Messages : 14
Détails du profil
Informations personnelles :
Nom : Lucas Vizcaïno

Informations forums :
Inscription : septembre 2010
Messages : 14
Points : 1
Points : 1
merci beaucoup des réponses

Je vais m'informer sur le JavaScript quand même mais avant, je tiens à finir mon application pour qu'elle soit fonctionnelle dans un premier temps, et ensuite je verrais les évolutions possibles.

Donc vous me dite qu'il est possible via une requête SQL de grouper mes résultats par tranche de 30 valeurs et d'en ressortir uniquement les moyennes de ces tranches ?
iPh-Lucas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h14.


 
 
 
 
Partenaires

Hébergement Web