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 :

Faire un classement php/mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut Faire un classement php/mysql
    Bonjour, sur un site de pronostics de courses de cheveaux, je cherche à faire un classement des pronostics du genre :

    numéro 1 a été joué 5 fois
    numéro 15 a été joué 6 fois
    etc ...

    Les noms des champs dans la base de données sont C1 C2 C3 C4 C5 C6 C7 et C8

    Chacun de ces champs pouvant contenir les memes chiffres, par exemple une ligne de résultat peut tres bien comporter dans C1 la valeur 2 et sur lautre ligne C5 est susceptible de contenir également 2 ...
    Bref j'espere avoir été assez clair, posez moi des questions si ce n'est pas le cas .

    Par avace merci beaucoup pour votre aide . Cordialement .

  2. #2
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 111
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom, nombre
    FROM course
    ORDER BY nombre [ASC, DESC]

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    merci, mais je ne sais pas si ta requete répond a ma question, as tu bien compris que je cherche a savoir combien de fois a été joué le numéro 2, ou le numéro trois, etc ... ?

    Mais cela doit etre calculé grace aux valeurs des champs C1, C2, C3, C4, C4 ... C8

    Exemple :
    ---------
    joueur 1 :
    C1: 5
    C2: 8
    C3: 4
    C4: 11
    C5: 16
    C6: 12
    C7: 3
    C8: 1

    joueur 2 :
    C1: 6
    C2: 3
    C3: 7
    C4: 13
    C5: 11
    C6: 4
    C7: 5
    C8: 16

    Voilà, ma requete devrait donc trouver :

    Le numéro 5 a été joué 2 fois
    le numéro 8 a été joué 1 fois
    le numéro 4 a été joué 2 fois
    etc ...

    voilà, un exemple en dit bien plus que des phrases parfois

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    Bonjour

    Tu devrais intégrer les numéro de chevaux dans un array.
    Ensuite faire un FOREACH de cet Array.
    Tu test le numéro sur chaque champs dans ta requête puis tu
    Calcul le nombre de ligne.

    En espérant que cela t'aide

    Yasen77

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    je crois comprendre mais il est vrai que je n'ai jamais utilisé le foreach, aurais tu un petit exemple stp ? merci beaucoup on approche du but

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    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
    <?php
     
    mysql_connect('localhost','root','');
    mysql_select_db('base');
     
    $requete=mysql_query("SELECT * FROM test");
    $r=mysql_fetch_array($requete);
     
    $i = 0; /* uniquement pour l'illustration */
     
    foreach ($r as $v) {
        echo "\$r[$i] => $v.\n";
        $i++;
    }
    ?>
    Voilà ce que j'ai fait comme test car j'ai lu un tuto sur foreach, mais comment compter combien de fois sa trouve la valeur 1,2,3, etc ... et l'afficher ?

    Pour l'instant, j'ai juste un tableau associatif qui s'affiche avec les valeurs retournées .

    Merci encore

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    bonjour,

    Je pense que devrais fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    $num_chx = array("1","2","5",etc);
     
    foreach ($num_chx as $val)
    {
     
    $sql = "SELECT * FROM ta_table WHERE C1='".$val."' OR C2='".$val."' ... OR C8='".$val."'";
    $req = mysql_query($sql) or die(mysql_error());
    $result = mysql_num_rows($req);
     
    echo "Le numéro ".$val." a été joué ".$result." fois";
     
    }

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    arf ... que les choses deviennent simples quand on cherche le compliqué .......................................

    Merci mille fois ! Sa marche

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    Derniére petite question, comment mettre dans l'ordre, c'est à dire faire un classement croissant ou décroissant de ces résultats ? Sa doit pas être bien compliqué mais bon ... merci encore

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    pour une solution rapide, je passerai par une table intermédiaire avec la référence de la course, les numéros des chevaux et le résultat du calcul.

    a partir de la, on peut affiché dans l'ordre que l'on veux.

    après, je vais regarder, si il existe une solution autre.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    Non ne cherche plus celà me semble être LA solution, c'est simple comme bonjour en plus

    Merci encore (et désolé pour cette dernière question digne d'un débutant ...)

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    Bon, j'ai fait cette solution, théoriquement sa devait marcher sans probleme, sauf que j'ai un probleme, sa m'affiche comme suit :


    Cheval n°13 : 1 fois
    Cheval n°8 : 10 fois
    Cheval n°16 : 11 fois
    Cheval n°3 : 12 fois
    Cheval n°1 : 14 fois
    Cheval n°7 : 14 fois
    Cheval n°5 : 16 fois
    Cheval n°2 : 2 fois
    Cheval n°15 : 2 fois
    Cheval n°6 : 4 fois
    Cheval n°9 : 4 fois
    Cheval n°4 : 6 fois
    Cheval n°12 : 6 fois
    Cheval n°10 : 7 fois
    Cheval n°11 : 7 fois
    Cheval n°14 : 8 fois


    En gros, il compte les chioffres comme si c'était des nombres et donc classe par dizaines ... comment sa se fait ? dois-je mettre une fonction qui remplace les chiffres de 1 à 9 par 01,05,09, etc ... ? ou y'a t'il une solution plus simple, bien que sa soit pas tres compliqué à réaliser en soi ... ?

    Merci encore .

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    okok, bon ben le probleme était simplement que je devais mettre le champ en smallint dans mysql ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 22/06/2010, 16h08
  2. Comment faire un SETUP d'application php/mysql ?
    Par cornnery dans le forum Langage
    Réponses: 1
    Dernier message: 12/05/2009, 16h41
  3. Réponses: 3
    Dernier message: 06/01/2009, 14h07
  4. Un CMS en PHP/MYSQL simple pour faire..
    Par cyberderf dans le forum Débuter
    Réponses: 3
    Dernier message: 11/12/2008, 09h59

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