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 :

Récupérer des valeurs SQL avec la fonction fetch()


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut Récupérer des valeurs SQL avec la fonction fetch()
    Bonjour,

    Je suis en train de chercher à créer un tableau en php, dont le contenu des cases provient d'une base de donnée.

    Par exemple, je vais chercher les informations sur l'émission qui passe Lundi à 7h.

    Je stocke la requête :

    $requete="SELECT * FROM emissions WHERE jour = '".lundi."' AND horaire ='".7h."'";


    J'envoie la requête :

    $resultat = $pdo->query($requete);

    Et à présent, je cherche à savoir comment récupérer les informations que je viens de demander dans ma requêtes, pour pouvoir les placer dans mon code html (entre deux balises <td></td>.)

    Pourriez-vous m'aider s'il vous plaît ?

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    il faut boucler sur ton résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    foreach($resultat as $ligne)
         echo $ligne['unChampDeLaTable'];

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci Madfrix,

    donc si j'ai bien saisit, la fonction foreach va balayer ma variable resultat qui est un tableau de valeurs SQL, et ensuite il va écrire le résultat ligne par ligne ?

    Je suis en train de regarder dans mes cours et j'ai rajouté une vérification pour savoir si il y a bien une valeur à récupérer.

    qu'en penses-tu ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $resultat = $pdo->query($requete);
    $check=$resultat->fetch(PDO::FETCH_NUM);
     
    if($check == true) {
         foreach($resultat as $ligne)
         echo $ligne['unChampDeLaTable'];
    }else {
         echo(" ");
    }
    remarque : je suis un peu surpris qu'il n'y ai pas de balises ouvrantes et fermante pour le foreach ^^ c'est une "méthode boucle" en fait.

    et si l'on met 3 à 4 action en dessous du foreach, il va les exécuter autant de fois qu'il lit de ligne ?

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par openwave Voir le message
    donc si j'ai bien saisit, la fonction foreach va balayer ma variable resultat qui est un tableau de valeurs SQL, et ensuite il va écrire le résultat ligne par ligne ?

    En fait, ce n'est pas un tableau de valeurs SQL mais un PDOStatement

    PDO::query() retourne un objet PDOStatement, ou FALSE si une erreur survient.
    Concernant le foreach, c'est une structure de bloc seule l'instruction suivant le foreach sera concernée par celui ci sauf si tu encadres avec {} (comme un if en somme)

    Tu peux aussi choisir la méthode de construction de ton PDOStatement. Ex:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $resultat = $pdo->query($requete, PDO::FETCH_OBJ);
     
    foreach($resultat as $ligne)
         echo $ligne->unChampDeLaTable;

    Enfin, si tu as beaucoup de redondance de même requête (insertion par ex), il est préférable et plus sécuritaire de préparer tes requêtes avec prepare()

  5. #5
    Invité
    Invité(e)
    Par défaut
    Enfin, si tu as beaucoup de redondance de même requête (insertion par ex), il est préférable et plus sécuritaire de préparer tes requêtes avec prepare()
    J'ai lu la description de cette fonction, mais j'ai du mal à saisir ce qu'elle a de spécifique par rapport à query()

    D'ailleurs pour ce qui est des insertions répetitives, ce sera le cas du côté de l'administrateur, lorsque il définira justement le planning, car il enverra dans la base de donnée un nombre important de requête d'insertion pour remplacer les valeurs de la semaine précédentes.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/10/2009, 22h55
  2. [XL-2003] récupérer des valeurs en fonction de caractères
    Par doudou8mc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/09/2009, 09h31
  3. Réponses: 2
    Dernier message: 05/03/2008, 22h01
  4. Réponses: 2
    Dernier message: 17/05/2006, 11h43
  5. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38

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