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 :

Prochain match


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Par défaut Prochain match
    Bonjour tout le monde.

    Voila mon "problème" :

    je gère le site de mon club de volley, et j'aimerais afficher sur la home les prochains matchs de chaque équipe.

    Dans ma base, j'ai une table par équipe, et voici les champs des tables matchs :

    id
    date_match (type text, format jj/mm/aaa)
    heure
    equipe_domicile
    equipe_exterieur
    resultat

    Je ne sais pas quelle requête effectuer pour avoir le premier match sans résultat (donc le suivant).
    Si vous avez e quoi m'aiguiller, merci d'avance !

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Une solution :
    1) Tu passes resultat en valeur nulle par défaut.
    2) Tu passes date_match en format de date (TIMESTAMP, DATE, DATETIME...), ce qui est normal pour une date
    3) Requête qui devrait le faire :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
             FROM matchs
             WHERE resultat=NULL
             ORDER BY date_match
             LIMIT 5

  3. #3
    Membre éclairé Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Par défaut
    Je vais essayer ça...

    Mais en fait, j'aurais du le dire dans mon message, c'est que par défaut, dans le champ résultat, j'ai mis " - ".

    Sinon, j'avais pensé ajouter un champ "joue" avec comme valeur par défaut 0.
    Ensuite dans ma requête, je fait

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where joue=0 limit 1

    Je pense que ça peut aussi fonctionner...

    En tout cas, merci pour ta réponse

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    1) Il vaut mieux une valeur NULL quand le champ est nul. Tu as des fonctions qui te permettent ensuite de récupérer facilement cette valeur.
    2) Pour respecter l'atomicité d'une donnée, je te conseille de scinder ton champ resultat en 2 champs distincs : resultat_domicile et resultat_exterieur. En effet, tu dois avoir une seule donnée par champ, alors que jusqu'ici tu en as 2. De plus, les requêtes seront beaucoup plus faciles et rapides :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // matchs gagnés par équipe domicile
    SELECT *
        FROM matchs
        WHERE resultat_domicile > resultat_extérieur
     
    // matchs nuls
    SELECT *
        FROM matchs
        WHERE resultat_domicile = resultat_extérieur
     
    // matchs gagnés par une équipe en particulier
    SELECT *
        FROM matchs
        WHERE (equipe_domicile=ton_equipe AND resultat_domicile > resultat_extérieur)
                  OR (equipe_extérieur=ton_equipe AND resultat_domicile < resultat_extérieur)

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Une autre solution (qui n'exclut pas l'importance de mon post précédent) consiste tout simplement en un test sur date_match :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
        FROM matchs
        WHERE date_match > NOW()
        ORDER BY date_match

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/12/2003, 15h23
  2. Requete select pour récupérer les no match entre 2 tables
    Par Celina dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/12/2003, 11h59
  3. obtenir le prochain ID en mode auto-increment
    Par arnololo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/12/2003, 17h43
  4. "Match nul"
    Par Sylvain James dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 17/06/2003, 10h27
  5. template match="node() mais pas text()"
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/03/2003, 10h52

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