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 :

PDO select - execute()


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 97
    Points : 84
    Points
    84
    Par défaut PDO select - execute()
    Bonjour à tous,
    j'ai mis en place un petit système de commentaires sous des images.

    pour gérer les commentaires, j'ai une page qui permet de selectionner soit une Date soit le nom d'un répertoire

    Pour cela 2 champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <tr><td style ="font-weight: bold; width: 150px; text-align: right;"> Depuis le : </td><td>
    <input type="hidden" id="vide" name="vide" value="" >
    <input type="text" id="date" name="date" ></td>
    </td>
    <td style ="font-weight: bold; width: 150px; text-align: center;"> ou  </td>
     
    <td style ="font-weight: bold; width: 150px; text-align: right;"> Poste source : </td><td>
    <input type="text" id="poste" name="poste" ></td>
    </td>
    </tr>

    Coté traitement, je test si c'ets le champs "date" ou "poste" qui est remplis et suivant le résultat je lui attribut une requete mysql :

    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
    <?php
    if(($NomPoste != $Vide) && ($Date == $Vide))
    {
    // Ma requete de controle si NomPoste complété
    $query = $bdd->query("SELECT IdPS, NomPoste, CommunePoste, CodePoste
    FROM postesource WHERE NomPoste LIKE '$NomPoste'"); 
    }
    if(($NomPoste == $Vide) && ($Date != $Vide))
    {
    // Ma requete de controle si Date complété
    // Renvois tous les commentaires supérieurs à la date entrée
    $query = $bdd->query("SELECT Commentaire, Date, Nom, Prenom, NomPoste
    FROM commentaire, user, image, postesource 
    WHERE Date >= '$Date' 
    AND commentaire.IdUser = user.IdUser
    AND commentaire.IdImg = image.IdImg
    AND image.IdPS = postesource.IdPS"); 
    }
    // Exécution de la requete
    $query->execute();               // LIGNE 103
    // Compteur
    $count = $query->rowCount(); 
    $i = 0;
    // Si il renvoi 1 requete trouvé
    if($count > 0) 
    { 
    ... affichage etc...
    } ?>
    Dans le 1er cas (nom poste) la requete s'éxécute bien et affiche les résultats attendu.

    Dans le 2eme cas avec la date au format YYYY-MM-DD il me marque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Notice: Undefined variable: query in ... on line 103
     
    Fatal error: Call to a member function execute() on a non-object in ... on line 103
    Je me demande pourquoi il m'affiche cela et ce qui ne vas pas dans mon code.

    ps: les 2 requêtes fonctionnent, testé sous MySql.


    Merci à tous

  2. #2
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    Bonjour,

    pourrais tu afficher ta requête sql (lorsque tu es dans le cas où ca marche pas) stp?

    remarque: il vaudrait mieux changer le nom du input date et le remplacer par autre chose pour éviter qu'il y ait confusion avec la fonction date de php. (j'ai déjà eu des problèmes de ce genre ^^)

    Test en remplaçant ceci dans ta requete:

    par ceci

    Ps:à confirmer mais je pense qu'il ne faut pas les simples quotes pour une date (à 70%)
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 97
    Points : 84
    Points
    84
    Par défaut
    Plusieurs problème corrigé

    Le 1er : Aucune requete n'étais selectionnée donc erreur.

    2eme inutile de mettre $query->execute() pour un select.

    3eme tu as raisons retro ma requete était foireuse '" .$Date. "' c'est mieux


    Merci à toi amis motard :p

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

Discussions similaires

  1. [PDO] PDO select retourne mes colonnes dupliquées
    Par lolaalol dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/06/2013, 10h43
  2. Réponses: 9
    Dernier message: 19/07/2012, 00h26
  3. [MySQL] PDO +SELECT + LIKE
    Par Paniez dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/02/2011, 16h17
  4. [PDO] PDO select avant insert
    Par Invité dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/05/2010, 01h14
  5. [PDO] Extension PDO/Problème execute
    Par dinguedemoi dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/07/2009, 09h19

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