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

Langage PHP Discussion :

Compter les chiffres les plus utilisée.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 21
    Points : 16
    Points
    16
    Par défaut Compter les chiffres les plus utilisée.
    Bonsoir,

    Pour un besoin personnel de traitement d'information, chaque jour une appliance insert dans une base de donnée une série de chiffre séparer par un - (Exemple d'insertion : 01-02-44-12-55-79-80-60-77)

    Les chiffres correspond a des message d'alerte ou d'erreur. Je cherche a afficher mensuellement les numéro d'erreur qui apparaisse le plus souvent.

    Si quelqu'un pourrait m'aiguillait dans mes recherches afin de pouvoir faire mon script.

    Cordialement,

    JJROSET

  2. #2
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    il serait mieux de stocker une erreur par ligne, c'est un peu comme si tu créais une colonne "nom / prenom / 2emePrenom" 3 informations dans la même colonne !!!

    quoi qu'il en soit:
    en supposant que le nombre d'erreur est de maximum 9

    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    erreur	
    01-02-44-12-55-79-80-60-77
    01-44-44-12-55-79-80-60-77
    01-02-44-12-55-79-44-60-77
    01-02-44
    et la requête :
    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
    select ERR,count(*) AS NBRErr from
    (
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-', 1) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    UNION ALL
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-', 2) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    UNION ALL
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-', 3) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    UNION ALL
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-', 4) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    UNION ALL
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-',5) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    UNION ALL
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-',6) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    UNION ALL
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-',7) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    UNION ALL
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-',8) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    UNION ALL
    (SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(concat(erreur,"---------"), '-',9) , '-',-1) as ERR FROM `appliance` WHERE 1) 
    ) as T1 where ERR <> '' group by ERR order by NBRErr desc
    tu obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ERR   NBRErr
    44 	6
    01 	4
    60 	3
    77 	3
    02 	3
    12 	3
    55 	3
    79 	3
    80 	2
    mais ce genre de chose est loin d'être optimales.

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    en PHP cela donnerait quelque chose comme ça :
    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
    <?php
     
    $errors = array(
        '01-02-44-12-55-79-80-60-77',
        '01-44-44-12-55-79-80-60-77',
        '01-02-44-12-55-79-44-60-77',
        '01-02-44'
    );
     
    $nb = array();
     
    $count =
        function($p) use (&$nb)
        {
            $err = explode('-', $p);
            foreach($err as $v) {
                $nb[$v] = ++$nb[$v];
            }
        };
     
    array_map($count, $errors);
     
    ?>

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    avec http://fr.php.net/array_count_values

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $array = explode('-' , '01-02-44-12-55-79-80-60-77-01-02-12-12');
    print_r(array_count_values($array));
     
     
    //Avec le tri et l'affichage
     
    $array = explode('-' , '01-02-44-12-55-79-80-60-77-01-02-12-12');
    $array = array_count_values($array) ;
    arsort($array); 
    foreach ($array as $key => $val) {
        echo "$key = $val\n";
    }
    ?>

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bien vu ascito, je l'avais oubliée celle-là alors que je m'en suis déjà servi...

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/01/2010, 11h09
  2. [Debutant] Liste Des Commandes Basiques Les Plus Utilisées Sous VB6
    Par akatsuki1905 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/10/2008, 21h23
  3. TEdit : Autoriser uniquement les chiffres (utilisation du OnKeyDown)
    Par ero-sennin dans le forum Composants VCL
    Réponses: 4
    Dernier message: 25/01/2008, 09h43
  4. [ASE]les tables les plus utilisé
    Par arona dans le forum Sybase
    Réponses: 4
    Dernier message: 21/09/2006, 14h25
  5. Savoir quelle sont les requêtes les plus utilisées ?
    Par tchoumak dans le forum Requêtes
    Réponses: 1
    Dernier message: 29/06/2006, 16h45

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