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 :

Problème PDO fetch [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Par défaut Problème PDO fetch
    Bonsoir, je me creuse la tête depuis 2 heures mais impossible de trouver une réponse, merci de votre aide.
    J'ai l'erreur
    Call to a member function fetch() on a non-object
    En fait j'aimerai que seule la ligne où l'utilisateur est celui connecté soit affichée
    Merci beaucoup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    				  $SQLSelect = $odb -> query("SELECT * FROM `support` WHERE `auteur` = :user ORDER BY `ID` ASC");
    				  while ($show = $SQLSelect -> fetch(PDO::FETCH_ASSOC))
    				  {
    					$nomShow = $show['nom'];
    					$contenuShow = $show['contenu'];
    					$genreShow = $show['genre'];
    					$rowID = $show['ID'];
    					echo '<tr><td><input type="checkbox" class="simple_form" name="deleteCheck[]" value="'.$rowID.'"/></td><td><center><a href="modifprod.php?id='.$rowID.'">'.htmlentities($nomShow).'</a></center></td><td>'.$genreShow.'</td><td>'.substr($contenuShow, 0, 20).' [...]</td></tr>';
    				  }
    				  ?>

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Bonjour, il y a plusieurs soucis.
    1. on a pas tout le code
    2. l'erreur signale que l'objet n'est pas instancié, donc il y a une erreur à la connexion
    3. le code sql quivant :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM `support` WHERE `auteur` = :user ORDER BY `ID` ASC"
    , laisse apparaitre un paramètre dynamique ":user", or celui-ci est passé nulle part dans l’exécution.

    Voici un exemple complet : Lien

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Par défaut
    Bonjour, merci de votre réponse, j'ai inséré en pièce jointe le fichier correspondant.
    Lorsque je remplace :id par 2 par exemple cela fonctionne donc j'en déduis que cela vient de ce :id

    Cependant, je n'ai pas d'autres solutions que de sélectionner seulement le message posté par l’utilisateur dont l'id et celui de l'auteur.
    En gros, un message posté par Sam aura comme auteurid l'id unique du visiteur (dans ce cas c'est le chiffre 2), je voudrais donc afficher tous les messages dont l'auteurid et le même chiffre que l'id unique du visiteur (donc là afficher tous les messages avec auteurid=2)
    J'espère que vous comprendrez mieux mon problème, merci!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $SQLSelect = $odb -> query("SELECT * FROM `support` WHERE `auteurid` = :id ORDER BY `ID` ASC");
    				  while ($show = $SQLSelect -> fetch(PDO::FETCH_ASSOC))
    				  {
    					$nomShow = $show['nom'];
    					$contenuShow = $show['contenu'];
    					$genreShow = $show['genre'];
    					$rowID = $show['ID'];
    					echo '<tr><td><input type="checkbox" class="simple_form" name="deleteCheck[]" value="'.$rowID.'"/></td><td><center><a href="modifprod.php?id='.$rowID.'">'.htmlentities($nomShow).'</a></center></td><td>'.$genreShow.'</td><td>'.substr($contenuShow, 0, 20).' [...]</td></tr>';
    				  }
    Fichiers attachés Fichiers attachés

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Par défaut
    Problème corrigé, j'avais oublié d'ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SQLSelect -> execute(array(":id" => $_SESSION['ID']));
    après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SQLSelect = $odb -> prepare("SELECT * FROM `support` WHERE `auteurid` = :id ORDER BY `ID` ASC");
    Merci quand même
    Bonne journée

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Grillé

    C'est marrant (ou pas), tout au long du fichier tu attaques la db correctement et pour le dernier, et ben on se dit bah autant faire autrement ???? Why ???

    Bon en supposant que le id correspond à la session trouvé plus haut dans le fichier je ferais ceci .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $SQL = $odb->prepare("SELECT * FROM `support` WHERE `auteurid` = :id ORDER BY `ID` ASC");
    $SQL->execute(array(':id' => $_SESSION['ID']));
    while ($show = $SQL->fetch(PDO::FETCH_ASSOC))

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

Discussions similaires

  1. probléme avec PDO fetch
    Par ryodo dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2011, 15h27
  2. problème procédure FETCH
    Par robia dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 11/06/2008, 18h14
  3. [PDO] Problème PDO ou MySQL :\
    Par WerKa dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/06/2007, 17h55
  4. Réponses: 2
    Dernier message: 06/03/2007, 11h00
  5. [EJB3] problème de fetch=lazy avec ejb3
    Par pbdlpc dans le forum JPA
    Réponses: 2
    Dernier message: 16/01/2007, 21h52

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