IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Gestion de stats journaliers


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 60
    Par défaut Gestion de stats journaliers
    Bonjour à vous, chers codeurs,

    J'ai besoin d'un petit peu d'aide. Je vais essayer d'être clair.

    En gros, j'ai une table avec disons une dizaine de nouvelles lignes par heure et un timestamp appellé date pour chaque ligne.

    En gros, ce que je voudrais, c'est faire une boucle qui liste chaque heure (de la journée, de 0h à 23h) et qui affiche pour chaque heure le nombre de résultats.

    Evidemment ça serait façile à faire avec 24 requêtes, mais comme la page risque d'être affiché quelques milliers de fois par jour, j'ai un peu peur pour mon dédié (et de toutes manières c'est hors de question).

    Merci d'avance (:

  2. #2
    Membre éclairé Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Par défaut
    y a pas moyen de faire quelque chose avec un group by ?

    Je n'est pas super bien compris enfin donne un peu plus d'information svp

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 60
    Par défaut
    Mince, je pensais avoir été assez clair (:

    Bon en fait, imaginons que j'ai une table avec des colonnes, ID et DATE.

    ID - DATE

    1 - 1175582288
    2 - 1175581276
    3 - 1175580224
    ...

    Par exemple.

    J'ai donc plusieurs valeurs par heure (un dizaine en général). Moi je voudrais faire une boucle qui affiche les unes après les autres le nombre de valeur (COUNT) pour chaque heure de la journée (entre 0h et 23h par exemple).

    Exemple (heure - nombre) :

    0h-1h - 8
    1h-2h - 9
    2h-3h - 11
    3h-4h - 7
    4h-5h - 12
    ...

    Merci.

  4. #4
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Par défaut
    si j'ai bien tout compris : un count et un group by HEURE devrait faire l'affaire

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 60
    Par défaut
    Mmh... par exemple un GROUP BY (DATE / 3600) ?

  6. #6
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Par défaut
    select count(ID) as nombre from TB group by HEURE
    --> te donne le nombre d'enregistrement par heure

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 60
    Par défaut
    Ca peut paraître con mais ça me parait bizzare.

    Si c'était spécifique à Mysql, ça serait pas plutôt HOUR ?

    Parce que je rappelle que je n'ai pas de colonne HEURE mais uniquement une colonne DATE avec un timestamp.

    Edit : en effet, ça ne fonctionne pas.

  8. #8
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Par défaut
    houla.
    il faut arreter les copier/coller et dire "ça marche pas".
    Il faut essayer de comprendre et d'adapter.
    on est pas là pour livrer du tout fait !
    dans ton cas, évidement, HEURE = ton champs DATE
    et TB, c'est le nom de ta table...
    par contre, ton DATE / 3600 ne te fera jamais de regroupement... car ça sera peut etre le meme jour, mais jamais la meme heure !
    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count (ID) as nombre from TB group by substr((DATE/3600), 1, 10)
    essaye ça ou quelque chose d'avoisinant...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 60
    Par défaut
    houla.

    Mais du coup, ce système ne va pas m'afficher les heures où il n'y a pas de résultats pour le count, ce que je voudrais.

    J'ai donc fais ça, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	$re = mysql_query("SELECT subscribe,COUNT(*) AS nombre FROM m_users WHERE subscribe>=$ce_matin GROUP BY substr((subscribe/3600), 1, 10)",$connexion)or die(mysql_error());
    	$n = mysql_num_rows($re);
     
    	for($i=0;$i<$n;$i++){
     
    		$nombre = mysql_result($re,$i,"nombre");
    		$subscribe = mysql_result($re,$i,"subscribe");
     
    		echo "$i - $nombre (".substr(($subscribe/3600), 1, 10).")<br />";
     
    	};
    Et ça m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    0 - 1 (26568.2327)
    1 - 1 (26568.5575)
    2 - 1 (26568.8241)
    3 - 1 (26574.2888)
    4 - 1 (26575.2638)

  10. #10
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Par défaut
    alors si tu veux afficher les résultats memes vides, il faut tout rappatrier et faire le traitement ansuite en php avec des boucles et des compteurs qui comptent, pour chaque timestamp(converti en date).
    c'est pas bien compliqué !

Discussions similaires

  1. [AC-2010] Planning journalier Gestion du personnel et du matériel
    Par pacolemanchot dans le forum Modélisation
    Réponses: 33
    Dernier message: 20/08/2012, 22h31
  2. Gestion de stocks avec stats et code-barre
    Par sbadecoder dans le forum EDI
    Réponses: 1
    Dernier message: 19/12/2010, 12h53
  3. Réponses: 8
    Dernier message: 22/06/2010, 11h01
  4. [POO] class php de gestion de stats
    Par cedsib dans le forum Langage
    Réponses: 5
    Dernier message: 18/05/2006, 12h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo