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 :

Creer une clause WHERE avec deux conditions donne erreur [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut Creer une clause WHERE avec deux conditions donne erreur
    Bonsoir,

    j'ai une requête sur ma page web php qui me donne les présence sur des foires et événements. J'ai créer la requête, et c'est ok.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = "SELECT t_rendezvous.HoraireDebut, t_rendezvous.HoraireFin, tbl_clientfournisseur.Nom, tbl_clientfournisseur.Prenom, tbl_clientfournisseur.Adresse, tbl_clientfournisseur.Localite, tbl_clientfournisseur.CodePostal, 
    		tbl_PaysMonde.CountryFrench, tbl_eventsorte.Description FROM tbl_PaysMonde INNER JOIN (tbl_clientfournisseur 
    		INNER JOIN (t_rendezvous INNER JOIN tbl_eventsorte ON t_rendezvous.IdEvent = tbl_eventsorte.IdEvent) ON tbl_clientfournisseur.IdClient = t_rendezvous.NP) ON tbl_PaysMonde.ID_TLD = tbl_clientfournisseur.Pays 
    		WHERE tbl_eventsorte.IdEvent =2";
    		break;
    Maintenant j'aimerai afficher uniquement les événements dans le futur, donc j'ai créer une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $HuidigeDatum = Date("Y-m-d H:i:s");
    que je veux comparer à t_rendezvous.HoraireDebut qui est en format Datetime.

    j'ai ajouter donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((t_rendezvous.HoraireDebut > " . $HuidigeDatum . ") AND (tbl_eventsorte.IdEvent =2)))";
    , mais j'obtiens une code erreur.

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:27:13) AND (tbl_eventsorte.IdEvent =2)))' at line 4


    qqn peux m'aider et me dire quelle est le bon syntaxe pour ceci??

    Merci infiniment

    Hans

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il manque des guillemets à ta date.

    Mais beaucoup plus simplement :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE t_rendezvous.HoraireDebut > CURDATE() AND tbl_eventsorte.IdEvent = 2

    Egalement fait tes jointures dans l'ordre :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tbl_PaysMonde INNER JOIN tbl_clientfournisseur ON tbl_PaysMonde.ID_TLD = tbl_clientfournisseur.Pays
    INNER JOIN t_rendezvous ON tbl_clientfournisseur.IdClient = t_rendezvous.NP
    INNER JOIN tbl_eventsorte ON t_rendezvous.IdEvent = tbl_eventsorte.IdEvent
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Je viens d'indenter tes joiintures pour voir comprendre ce que tu fais.
    Pour les inner join, pas besoin d'imbrications complexes.
    Ca ne se pose que quand tu fais un mix d'inner join et de outer join...
    Donc ce qui suit n'est pas bon.
    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
    SELECT t_rendezvous.HoraireDebut, t_rendezvous.HoraireFin, tbl_clientfournisseur.Nom, tbl_clientfournisseur.Prenom, tbl_clientfournisseur.Adresse, tbl_clientfournisseur.Localite, tbl_clientfournisseur.CodePostal, 
    		tbl_PaysMonde.CountryFrench, tbl_eventsorte.Description 
    FROM tbl_PaysMonde 
    INNER JOIN (
    	tbl_clientfournisseur 
    	INNER JOIN (
    		t_rendezvous 
    		INNER JOIN tbl_eventsorte ON 
    			t_rendezvous.IdEvent = tbl_eventsorte.IdEvent
    	)
    	ON tbl_clientfournisseur.IdClient = t_rendezvous.NP
    ) 
    ON tbl_PaysMonde.ID_TLD = tbl_clientfournisseur.Pays 
    WHERE tbl_eventsorte.IdEvent =2
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut
    Merci Sabotage, j'ai changé comme tu as proposé et ça marche.

    je n'ai pas compris la nécessité de changer l'ordre des jointures, car l'autre solutions fonctionnais aussi, mais c'est fait.
    probablement plus simple comme ça.

    Quand on est pas un spécialiste dans la matière.........

    En tout cas, un grand merci. Comme ça je peux avancer.




    HAns

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

Discussions similaires

  1. une clause WHERE avec un Joker
    Par zooffy dans le forum Développement
    Réponses: 4
    Dernier message: 22/06/2010, 16h25
  2. Variable d'une clause where avec quote
    Par kcizth dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/04/2008, 15h43
  3. Insert avec une clause where !?
    Par Thomad dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/08/2006, 09h55
  4. [Oracle / Sql] clause where avec resultat d'une requete
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2006, 09h37
  5. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 17h05

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