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 :

PDO - Retour du tableau de résultats [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 21
    Points : 14
    Points
    14
    Par défaut PDO - Retour du tableau de résultats
    Bonjour,

    J'utilise depuis peu PDO alors je me permet de solliciter votre aide sur le problème suivant:
    A l'intérieur de ma class, j'ai une méthode qui effectue une requête via l'objet PDO:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public function affichage($id)
    {
       $sql = $this->bdd->prepare('select * from ma_table where id= :id');
       $sql->bindValue(':id', $mon_id);
       $sql->execute();
       $result = $sql->fetchAll(PDO::FETCH_ASSOC);
       for($z = 0; $z <count($result); $z++)
       {
    	return $result;
       }
    }

    Je comprends que ce code ne fonctionne pas car le return me fait "quitter" la fonction.
    Cependant, deux questions subsistent...

    1- comment faire pour retourner le tableau(array) de résultat suite à une requête afin que je puisse faire des affichages et traitements dans ma page php plutôt que dans la class ???
    2-$sql->fetch() à l'air de renvoyer qu'une ligne de résultat... du coup, pour avoir tout mes résultats j'utilise fetchAll() mais les résultats sont dans des sous tableaux (array d'array). Est-il possible de tout avoir dans le même Array principale ?

    Je vous remercie par avance.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ton for sert pas a grand chose en plus pour parcourir un arra uc'est plus simple de faire un foreach, et la tu quittes a la première itération...
    sinon pour les sous tableau c'est normal, je vois pas comment tu voudrais tout afficher dans le même ca n'aurai pas de sens.
    fais juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $sql->fetchAll(PDO::FETCH_ASSOC);

    ps : ton bind n'est surment pas bon non plus, fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql->bindValue(':id', $mon_id, PDO::PARAM_INT);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Ça n'étais pas si méchant mais c'est grâce à toi, merci de m'avoir apporté ton aide pour résoudre ce code !

    juste une question: c'est si important de préciser
    ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par joker92 Voir le message
    Ça n'étais pas si méchant mais c'est grâce à toi, merci de m'avoir apporté ton aide pour résoudre ce code !

    juste une question: c'est si important de préciser
    ?
    oui et non, on va dire que c'est plus logique et plus propre, et si ton serveur est mode strict il va retourner une erreur, donc :
    pas le mettre = risque d'erreur
    le mettre = aucun risque d'erreur

    la requête reviens à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where id='1'
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where id=1
    je te conseil aussi de toujours mettre en majuscule les mots SQL, et protéger les noms de table (pareil risque d'erreur en moins)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `ma_table` WHERE `id`=1

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 31/07/2006, 17h22
  2. retour de tableau
    Par ben539 dans le forum ASP
    Réponses: 2
    Dernier message: 16/06/2006, 12h42
  3. [PDO] PDO : retour d'expériences
    Par Philsmile dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 25/04/2006, 11h45
  4. Réponses: 3
    Dernier message: 24/04/2006, 17h32
  5. Réponses: 9
    Dernier message: 17/02/2006, 12h04

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