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 SQL Discussion :

Requête afficher des matchs


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut Requête afficher des matchs
    Bonjour,
    Je réalise un site pour un club de foot. J'ai une base de donnée qui est entièrement administrée.
    Donc j'ai une table "Calmatchs" où j'enregistre toutes les rencontres de toutes catégories .
    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
     
    CREATE TABLE IF NOT EXISTS `calmatchs` (
      `cal_id` int(8) NOT NULL AUTO_INCREMENT,
      `compet_id` int(8) NOT NULL DEFAULT '0',
      `cal_date` date NOT NULL DEFAULT '0000-00-00',
      `cal_heure` time NOT NULL,
      `equ_id` varchar(128) NOT NULL DEFAULT '',
      `cal_saison` year(4) NOT NULL DEFAULT '0000',
      `cal_locaux` varchar(128) NOT NULL DEFAULT '',
      `cal_visiteurs` varchar(128) NOT NULL DEFAULT '',
      `cal_score_locaux` varchar(128) NOT NULL,
      `cal_score_visiteurs` varchar(128) NOT NULL,
      `cal_gainspt` int(4) NOT NULL DEFAULT '0',
      `cal_report_bool` int(1) NOT NULL DEFAULT '0',
      `cal_report_date` date DEFAULT NULL,
      `cal_lieu` text,
      `cal_stade` text,
      `cal_forfait_locaux` int(1) NOT NULL DEFAULT '0',
      `cal_forfait_visiteurs` int(1) NOT NULL DEFAULT '0',
      `cal_prolong` int(1) NOT NULL DEFAULT '0',
      `cal_tirsaubut` int(1) NOT NULL DEFAULT '0',
      `cal_tirsaubut_locaux` int(2) DEFAULT NULL,
      `cal_tirsaubut_visiteurs` int(2) DEFAULT NULL,
      `description` text NOT NULL,
      PRIMARY KEY (`cal_id`)
    )
    Donc en fait je voudrais créer une requête qui affiche les matchs du week-end à venir et qui se répète pour chaque semaine.
    Si quelqu'un pouvait m'aider.
    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Bonjour,
    tu dois récupérer la date du jour (selon ton SGBD la fonction à utiliser diffère)
    Ensuite tu fais ton select en classant par date de match
    tu mets un where pour indiquer que la date est supérieure ou égale à la date du jour
    et tu fais un limit(1) pour n'avoir que le prochain match
    En groupant par équipe tu auras le prochain match de chaque équipe.
    Pour se limiter au week-end c'est un travail supplémentaire sur les dates avec DAYOFWEEK between 5 and 7 (MYSQL) ou DAYNAME (Acess, MySql, SQL Server) etc.
    Sans avoir ton SGBD c'est difficile de te donner exactement la solution

    Edit : Liste des fonctions SQL en fonction des SGBD
    Tu trouveras ici les fonctions en rapport avec les dates.

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par asmduty Voir le message
    tu dois récupérer la date du jour (selon ton SGBD la fonction à utiliser diffère)
    En standard SQL, c'est CURRENT_DATE.

    et tu fais un limit(1) pour n'avoir que le prochain match
    Ça par contre est spécifique MySQL et peut-être d'autres.

    Mais effectivement, il faut jouer avec les fonctions de dates du SGBD.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    En standard SQL, c'est CURRENT_DATE.


    Ça par contre est spécifique MySQL et peut-être d'autres.

    Mais effectivement, il faut jouer avec les fonctions de dates du SGBD.
    Oops, oui le limit est spécifique en effet, mais en jouant juste avec les dates on peut s'en passer de toute manière.

  5. #5
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Je pense bien qu'il faut jouer avec la date mais comment integrer tous sa.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    En SQL ?


    Quel est ton SGBD ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    oui en sql, j'utilise myphpadmin. Voila pour l'instant ma requetes pour afficher mes matchs par equipe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        function get_list_matchs($id)
        {
     
            ConnectionDb();
     
             $sql = 'SELECT * FROM calmatchs WHERE cal_id='.$id;
     
            $query = mysql_query($sql) or die("Erreur : requête sql affichage liste des joueurs");
     
            return $query;
     
        }

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Vu les apostrophes inversées autour des noms de colonnes et de table, tu utilises MySQL.
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT cal_date, cal_heure, cal_locaux, cal_visiteurs, cal_lieu, cla_stade
    FROM calmatchs
    WHERE cal_date BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL 7 DAY)
    	AND DAYOFWEEK(cal_date) IN (1, 7) -- dimanche et samedi
    Il faut juste que cette requête ne soit pas lancée un samedi ou un dimanche sinon on a les matches du week-end en cours et non pas ceux du prochain week-end.

  9. #9
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    je testé donc sa comme requete sql.
    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
        function get_week_matchs()
        {
     
            ConnectionDb();
     
             $sql = 'SELECT cal_date, cal_heure, cal_locaux, cal_visiteurs, cal_lieu, cla_stade
    FROM calmatchs
    WHERE cal_date BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL 7 DAY)
    	AND DAYOFWEEK(cal_date) IN (1, 7)';
     
            $query = mysql_query($sql) or die("Erreur : requête sql affichage liste des joueurs");
     
            return $query;
     
        }
    et sur ma page j'ai erreur SQL.

  10. #10
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    L'erreur vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT cal_date, cal_heure, cal_locaux, cal_visiteurs, cal_lieu, cla_stade
    si je remplace par je ne recois plus d'erreur sql.

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Évite de relancer la guerre des étoiles !

    Tu devrais faire afficher l'erreur par ton programme mais je parie qu'il s'agit d'une erreur de colonne inconnue et qu'elle se situe ici :

  12. #12
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Oki c'est bon ma requête marche, mais autre petite question si je code maintenant en php pour afficher les matchs, est-ce que j'aurai tous les matchs du week end.
    Ex Seniors , jeunes et pitchounes ?

    C'est bon ça marche j'arrive à afficher les prochains matchs du week-end, il faut juste maintenant que je code tout ça pour la présentation. Mais un grand merci.

    Dernière petite question comme ça se passe pour afficher le résultat du week-end dernier ?

  13. #13
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Si vous avez compris ce que vous avez fait dans ce cas un petit tour par la doc MySql devrait suffire :

    http://dev.mysql.com/doc/refman/5.5/...functions.html

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Il faudrait éviter les décuples posts ...
    Pour les résultats du week end dernier il faudrait commencer par jeter un oeil sur les bases du SQL car visiblement tu n'as pas une seule base et on ne sera pas là pour faire tout ton boulot.

Discussions similaires

  1. Résultat de requête affiche des symboles en chinois
    Par Invité dans le forum Requêtes et SQL.
    Réponses: 23
    Dernier message: 04/12/2009, 14h52
  2. [SQL] Requête pour afficher des valeurs uniques
    Par gcvoiron dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/11/2007, 17h38
  3. Réponses: 3
    Dernier message: 01/03/2007, 21h54
  4. Réponses: 2
    Dernier message: 12/11/2006, 19h23
  5. Afficher le résultat d'une requête avec des côtes
    Par sweet_hell dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/10/2006, 10h32

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