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 :

Calcul des statistiques


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2008
    Messages : 23
    Par défaut Calcul des statistiques
    salut à tous,

    j'aurai besoin d'info et conseille et aide pour faire un page de stat sur des info stocker dans une db mysql.

    en gros j'ai stocker dans une db des interventions diverses j'ai un champ int dans le quel je stock la date exemple de date stocker : 20/02/2009 13:00:00

    je ne sais pas si j'ai bien fait !

    le problème c'est que j'aimerai faire de stat par date, 3 type de stat:
    - par mois (ou l'on voir le nombre intervention par jour).
    - par ans (ou l'on voir le nombre intervention par mois).
    - depuis le début (ou l'on voir le nombre intervention par mois).

    le tous si possible sous le forme d'histogramme.

    quelqu'un aurai une idée ?

  2. #2
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Salut,

    Euh, pas sur d'avoir compris (un extrait de ta base de donnée serait utile!).

    Mais déja: un int pour stocker une date -> a banninr! Mysql dispose de fonctions prévue pour (datetime, ou, je conseille, timestamp).

    Sinon, pour ton code directement, qu'as-tu déja fait? Car en fait, tu veux simplement effectuer un select, et générer un graphique, c'est ca? Il existe de nombreuses librairie de graphisme (artichaut par exemple).

    Onet

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2008
    Messages : 23
    Par défaut
    ok voici la structure de la table en question:

    Code : 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
    27
    28
    29
    DROP TABLE IF EXISTS `historique`;
    CREATE TABLE `historique` (
      `id_historique` int(10) NOT NULL auto_increment,
      `type_historique` varchar(255) NOT NULL default 'Vide',
      `installateur` varchar(255) NOT NULL default 'Vide',
      `date_installation` varchar(255) NOT NULL default 'Vide',
      `modele_historique` varchar(255) NOT NULL default 'Vide',
      `sn_historique` varchar(255) NOT NULL default 'Vide',
      `utilisateur` varchar(255) NOT NULL default 'Vide',
      `numero_commande_historique` varchar(255) NOT NULL default 'Vide',
      `lieux_historique` varchar(255) NOT NULL default 'Vide',
      `telephone_type_ligne` varchar(255) NOT NULL default 'Vide',
      `telephone_numero` varchar(255) NOT NULL default 'Vide',
      `telephone_type_historique` varchar(255) NOT NULL default 'Vide',
      `ref_historique` varchar(255) NOT NULL default 'Vide',
      `designation_historique` varchar(255) NOT NULL default 'Vide',
      `marque_historique` varchar(255) NOT NULL default 'Vide',
      `ecran_taille_historique` varchar(255) NOT NULL default 'Vide',
      `ecran_type_historique` varchar(255) NOT NULL default 'Vide',
      `cable_longueur_historique` varchar(255) NOT NULL default 'Vide',
      `cable_type_historique` varchar(255) NOT NULL default 'Vide',
      `toner_imprimantes_historique` varchar(255) NOT NULL default 'Vide',
      `toner_derniere_commande_historique` varchar(255) NOT NULL default 'Vide',
      `uc_cpu_historique` varchar(255) NOT NULL default 'Vide',
      `uc_ram_historique` varchar(255) NOT NULL default 'Vide',
      `uc_hdd_historique` varchar(255) NOT NULL default 'Vide',
      `type_imprimante_historique` varchar(255) NOT NULL default 'Vide',
      PRIMARY KEY  (`id_historique`)
    ) ENGINE=MyISAM AUTO_INCREMENT=210 DEFAULT CHARSET=latin1;
    et voici un enregistrement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO `historique` VALUES ('67', 'UC', 'vincent.ch', '10/12/2008 17:00:00', 'Optiplex 740', 'XXXX24J', 'utilisateur', 'XXXXXXX', 'Intendance: Pôle Maison', 'Vide', 'Vide', 'Vide', 'Optiplex 740', 'Optiplex 740', 'DELL', 'Vide', 'Vide', 'Vide', 'Vide', 'Vide', 'Vide', '2', '2048', '160', 'Vide');

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 62
    Par défaut
    Tu t'es pas embêté, t'as tout mis en varchar(255) ! :-D

    Le plus simple pour faire des stats, c'est de séparer jour/mois/année (voire trimestre/semestre si t'es motivé) dans ta base de données.

    Comme ça tu pourra faire des select différents.

    exemple pour compter les enregistrements sur un jour précis (aujourd'hui) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM ma_table WHERE jour=20 AND mois=02 AND annee=2008
    exemple pour compter les enregistrements sur un mois donné (ce mois-ci)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*)  FROM ma_table WHERE mois=02 AND annee=2008
    etc.. etc... en utilisant des autres fonctions analytiques sur des champs en fonction de ce que tu veux faire

  5. #5
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Citation Envoyé par nico1214 Voir le message
    Tu t'es pas embêté, t'as tout mis en varchar(255) ! :-D

    Le plus simple pour faire des stats, c'est de séparer jour/mois/année (voire trimestre/semestre si t'es motivé) dans ta base de données.

    Comme ça tu pourra faire des select différents.

    exemple pour compter les enregistrements sur un jour précis (aujourd'hui) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM ma_table WHERE jour=20 AND mois=02 AND annee=2008
    exemple pour compter les enregistrements sur un mois donné (ce mois-ci)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*)  FROM ma_table WHERE mois=02 AND annee=2008
    etc.. etc... en utilisant des autres fonctions analytiques sur des champs en fonction de ce que tu veux faire
    Surtout pas! C'est une horeur de faire ca! Et c'est plus que faux!

    Mysql et PHP savent gérer les dates, tu sais? Tant avec les valeurs date, datetime ou timestamp, pour ne citer que les 3 plus courantes. Et avec cela, tu fais tout les tests que tu veux! (php dispose de time, mktime, date, etc...).

    Onet
    P.S: je n'ai pas le temps dans l'immédiat pour te donner une réponse a ta question d'avant. je reviendrais plus tard. Désolé).

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 62
    Par défaut
    Citation Envoyé par onet Voir le message
    Surtout pas! C'est une horeur de faire ca! Et c'est plus que faux!
    Alors là il va falloir me convaincre Onet :-D Surtout en terme de performance...
    Tu as déjà fait des infocentres ? Parce que c'est bien d'un infocentre dont on parle, puisqu'il faut en sortir des métadonnées. Les périodes y sont indiquées dans une table séparée (table de référence) et les dates découpées pour ne pas, en plus, alourdir les requêtes avec des calculs de dates.
    Mettre une date dans un champs datetime c'est bien quand il s'agit de sélectionner puis d'afficher, pas pour faire des calculs par période...

Discussions similaires

  1. Calculer des statistiques à partir d’un fichier texte.
    Par louay02 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/04/2011, 15h48
  2. Calcul des statistiques dans un traitement ETL
    Par Prjprj dans le forum DB2
    Réponses: 1
    Dernier message: 30/06/2009, 21h12
  3. Calcul des statistiques
    Par enDev dans le forum Administration
    Réponses: 4
    Dernier message: 21/07/2008, 11h43
  4. calcul des statistiques par dbms_stat
    Par learn dans le forum Oracle
    Réponses: 5
    Dernier message: 27/02/2006, 21h16
  5. [DBA] Calcul des Statistiques sans privilèges DBA
    Par Krashtest dans le forum Administration
    Réponses: 14
    Dernier message: 06/05/2004, 16h08

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