Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2011, 20h51   #1
 
Homme jessy elter
salarié
Inscription : mars 2011
Messages : 55
Détails du profil
Informations personnelles :
Nom : Homme jessy elter
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : salarié
Secteur : Alimentation

Informations forums :
Inscription : mars 2011
Messages : 55
Points : -1
Points : -1
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 :
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
jesaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 08h57   #2
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
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.
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 11h27   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
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.

Citation:
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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 11h45   #4
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
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.
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h01   #5
 
Homme jessy elter
salarié
Inscription : mars 2011
Messages : 55
Détails du profil
Informations personnelles :
Nom : Homme jessy elter
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : salarié
Secteur : Alimentation

Informations forums :
Inscription : mars 2011
Messages : 55
Points : -1
Points : -1
Je pense bien qu'il faut jouer avec la date mais comment integrer tous sa.
jesaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h04   #6
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
En SQL ?


Quel est ton SGBD ?
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h07   #7
 
Homme jessy elter
salarié
Inscription : mars 2011
Messages : 55
Détails du profil
Informations personnelles :
Nom : Homme jessy elter
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : salarié
Secteur : Alimentation

Informations forums :
Inscription : mars 2011
Messages : 55
Points : -1
Points : -1
oui en sql, j'utilise myphpadmin. Voila pour l'instant ma requetes pour afficher mes matchs par equipe
Code :
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;
 
    }
jesaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h12   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Vu les apostrophes inversées autour des noms de colonnes et de table, tu utilises MySQL.
Essaie ceci :
Code :
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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h21   #9
 
Homme jessy elter
salarié
Inscription : mars 2011
Messages : 55
Détails du profil
Informations personnelles :
Nom : Homme jessy elter
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : salarié
Secteur : Alimentation

Informations forums :
Inscription : mars 2011
Messages : 55
Points : -1
Points : -1
je testé donc sa comme requete sql.
Code :
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.
jesaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h24   #10
 
Homme jessy elter
salarié
Inscription : mars 2011
Messages : 55
Détails du profil
Informations personnelles :
Nom : Homme jessy elter
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : salarié
Secteur : Alimentation

Informations forums :
Inscription : mars 2011
Messages : 55
Points : -1
Points : -1
L'erreur vient de
Code :
SELECT cal_date, cal_heure, cal_locaux, cal_visiteurs, cal_lieu, cla_stade
si je remplace par je ne recois plus d'erreur sql.
jesaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h27   #11
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
É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 :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h31   #12
 
Homme jessy elter
salarié
Inscription : mars 2011
Messages : 55
Détails du profil
Informations personnelles :
Nom : Homme jessy elter
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : salarié
Secteur : Alimentation

Informations forums :
Inscription : mars 2011
Messages : 55
Points : -1
Points : -1
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 ?
jesaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h45   #13
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 641
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 641
Points : 2 634
Points : 2 634
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
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 15h21   #14
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
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.
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h37.


 
 
 
 
Partenaires

Hébergement Web