Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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/12/2010, 11h55   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 136
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 136
Points : 14
Points : 14
Par défaut pb de requete ?

Bonjour !

je cherche a afficher que les evenments dont le champ date_fin est plus grande ou égale à la date actuelle (c'est a dire les evenements futur)
sachant que mon champs date_fin est de type date (0000-00-00)
pb ca m'affiche tous les evenements, meme ceux avec une date-fin du par ex: 2010-07-17
la comprends vraiment pas ???
voici mon code et ma requete :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$date_actuelle = date('Y-m-d');
 
$reponse = $bdd->query("SELECT *
FROM evenement
JOIN jointure_evenement_prof
ON evenement.id_evenement = jointure_evenement_prof.idEvenement
JOIN prof
ON jointure_evenement_prof.idProf = prof.id_prof
WHERE date_fin >= $date_actuelle
ORDER BY date_debut
") or die(print_r($bdd->errorInfo())); //requete
 
while ($donnees = $reponse->fetch())
{
?>
<p><?php echo $donnees['date_fin'];?></p>
<?php
}
?>
et voici mes tables :

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
CREATE TABLE IF NOT EXISTS `evenement` (
  `id_evenement` int(11) NOT NULL AUTO_INCREMENT,
  `titre` varchar(250) NOT NULL,
  `date_creation` datetime NOT NULL,
  `id_type_evenement` tinyint(4) NOT NULL,
  `date_text` text NOT NULL,
  `date_courte` varchar(200) NOT NULL,
  `date_debut` date NOT NULL,
  `date_fin` date NOT NULL,
  `adresse` tinytext NOT NULL,
  `cpostal` mediumint(5) unsigned NOT NULL,
  `ville` varchar(50) NOT NULL,
  `renseignements_inscription` text NOT NULL,
  `bulletin_inscription_pdf` varchar(100) NOT NULL,
  `url_bulletin_inscription` text NOT NULL,
  `text_court` text NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY (`id_evenement`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=83 ;
 
CREATE TABLE IF NOT EXISTS `jointure_evenement_prof` (
  `idJointureProfEvenement` smallint(6) NOT NULL AUTO_INCREMENT,
  `idProf` tinyint(4) NOT NULL,
  `idEvenement` tinyint(4) NOT NULL,
  PRIMARY KEY (`idJointureProfEvenement`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=68 ;
 
CREATE TABLE IF NOT EXISTS `prof` (
  `id_prof` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `nom` varchar(30) NOT NULL,
  `prenom` varchar(40) NOT NULL,
  `ecole` varchar(50) NOT NULL,
  `adresse_cours1` text NOT NULL,
  `url_plan_adresse_cours1` text NOT NULL,
  `adresse_cours2` text NOT NULL,
  `url_plan_adresse_cours2` text NOT NULL,
  `adresse_cours3` text NOT NULL,
  `url_plan_adresse_cours3` text NOT NULL,
  `tel` varchar(80) NOT NULL,
  `mail` varchar(50) NOT NULL,
  `site_web` varchar(50) NOT NULL,
  `cours` text NOT NULL,
  `formation` text NOT NULL,
  `enseignement` text NOT NULL,
  `federation` text NOT NULL,
  `cheminement` text NOT NULL,
  PRIMARY KEY (`id_prof`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=71 ;
artichaudd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 12h03   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Code :
1
2
3
4
5
6
7
8
9
"SELECT *
FROM evenement
JOIN jointure_evenement_prof
ON evenement.id_evenement = jointure_evenement_prof.idEvenement
JOIN prof
ON jointure_evenement_prof.idProf = prof.id_prof
WHERE date_fin >= $date_actuelle
ORDER BY 'date_debut'
"
comme ca
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/12/2010, 12h32   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 136
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 136
Points : 14
Points : 14
est-ce bien ca tu as juste ajouté les quote
en effet ca change mon classement mais en rien mes résultats ceux passées sont toujours affiché
les quote servent a quoi au juste? merci
artichaudd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 12h37   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
c lundi je suis fatigué
Code :
1
2
3
4
5
6
7
8
9
10
 
"SELECT *
FROM evenement
JOIN jointure_evenement_prof
ON evenement.id_evenement = jointure_evenement_prof.idEvenement
JOIN prof
ON jointure_evenement_prof.idProf = prof.id_prof
WHERE date_fin >= '".$date_actuelle.'"
ORDER BY date_debut
"
comme ça exactement les guillemets servent pour que mysql interprète correctement ton date_actuelle sinon il le prendras pour un int
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2010, 12h42   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 136
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 136
Points : 14
Points : 14
donc tu veux faire une concaténation
mais j'ai mis ce que tu m'as dis '".$date_actuelle.'" mais erreur
donc jai mis "'.$date_actuelle.'" encore erreur !
puis '.$date_actuelle.' plus d'erreur mais il affiche encore les dates passée
et enfin '".$date_actuelle."' plus d'erreur mais il affiche encore les dates passée

ca devient dur dur
artichaudd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 13h08   #6
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Bonjour,

La concaténation de bool64 est presque juste il faut bien mettre les double et les simples quotes dans cet ordre.
C'est à dire que les simples sont interprétés comme faisant parti de la requête, alors que les doubles ne servent qu' à séparer les éléments de la chaîne concaténée.
C'est normal donc que :
Code :
"'.$date_actuelle.'" = erreur
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2010, 13h17   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 136
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 136
Points : 14
Points : 14
merci, en effet ca marche tres bien
par contre je l'ai mis comme cela qu'en pensez vous?
encore merci

Code :
1
2
3
4
5
6
7
8
9
$reponse = $bdd->query("SELECT *
FROM evenement
JOIN jointure_evenement_prof
ON evenement.id_evenement = jointure_evenement_prof.idEvenement
JOIN prof
ON jointure_evenement_prof.idProf = prof.id_prof
WHERE date_fin >= '$date_actuelle'
ORDER BY date_debut
") or die(print_r($bdd->errorInfo())); //requete
artichaudd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 13h30   #8
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Par défaut Tutoriel JOIN

Je ne connais pas assez les requêtes JOIN. Mais il me semble que ça ne peut être que là que le bas blesse...
Essaye de jeter un oeil à ce tutoriel sur notre site préféré
Il me semble que ta syntaxe n'est pas complète... Mais rien n'est sûr
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 13h46   #9
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 136
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 136
Points : 14
Points : 14
Citation:
Envoyé par artichaudd Voir le message
merci, en effet ca marche tres bien
par contre je l'ai comme cela qu'en pensez vous?
encore merci

Code :
1
2
3
4
5
6
7
8
9
$reponse = $bdd->query("SELECT *
FROM evenement
JOIN jointure_evenement_prof
ON evenement.id_evenement = jointure_evenement_prof.idEvenement
JOIN prof
ON jointure_evenement_prof.idProf = prof.id_prof
WHERE date_fin >= '$date_actuelle'
ORDER BY date_debut
") or die(print_r($bdd->errorInfo())); //requete
artichaudd est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h24.


 
 
 
 
Partenaires

Hébergement Web