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

pb de requete ?


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    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 : 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
    <?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 : 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
    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 ;

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    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

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    c lundi je suis fatigué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    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

  6. #6
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    "'.$date_actuelle.'" = erreur

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    merci, en effet ca marche tres bien
    par contre je l'ai mis comme cela qu'en pensez vous?
    encore merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    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

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

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

Discussions similaires

  1. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  2. Requete requête sous sybase
    Par eddie dans le forum Sybase
    Réponses: 3
    Dernier message: 02/04/2003, 14h51
  3. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  4. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43
  5. [Kylix] Requetes Kylix pour postgres
    Par Miltown dans le forum EDI
    Réponses: 1
    Dernier message: 29/05/2002, 20h22

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