[Mysql] Requête PDO avec variable php

WRInaute accro
Bonjour,

Toujours aussi à l'aise avec les requêtes MySql, je requière encore votre aide.

Je souhaite récupérer dans une entrée de table la valeur d'un champ (id_text) quand l'id de cette même entrée correspond à la valeur d'une variable php ($adid existe sur les pages où doit être affichée la requête).

Le code
Code:
<?php
    try
    {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=MA_BASE', 'user', '', $pdo_options);
        // Préparation de la requête
        $req = $bdd->prepare('SELECT id_text FROM ma_table WHERE id=? ');
        $req->execute(array($_GET['id']));
         while ($donnees = $req->fetch())
    {
        ?>

            <?php
                //$adid existe sur les pages sélectionnées
                $reponse = $bdd->query("SELECT id_text FROM ma_table WHERE id=$adid");
                $valeur = $reponse->fetch();
                    echo substr($row['id_text'], 0, 40).'...';
            ?>

        <?php
    }
        $reponse->closeCursor();
    }
    catch(Exception $e)
    {
    die('Erreur : '.$e->getMessage());
    }
?>
Je n'ai pas d'erreur affichée mais pas de résultat non plus :)
Merci pour votre attention.
 
WRInaute impliqué
Pourquoi pas simplement:
Code:
'SELECT id_text FROM ma_table WHERE id=$adid'

Ah mince j'étais pas descendu jusqu'en bas ^^

La variable $row elle vient d'où ?
 
WRInaute accro
Quand je fais ceci
Code:
<?php
/* connection a une base mysql en local */
    try
    {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=MA_BASE', 'user', '', $pdo_options);
                $reponse = $bdd->query("SELECT id_text FROM ma_table WHERE id=$adid");
                $valeur = $reponse->fetch();
    {
        ?>

            <?php
                    echo substr($row['id_text'], 0, 4).'...';
            ?>

        <?php
    }
        $reponse->closeCursor();
    }
    catch(Exception $e)
    {
    die('Erreur : '.$e->getMessage());
    }
?>
$adid ne semble pas reconnue, seul les trois points (...) s'affichent.

franckM a dit:
La variable $row elle vient d'où ?
$row['id_text'] est censé contenir le champ id_text de la requête $reponse
 
WRInaute impliqué
$adid c'est un tableau ou un singleton ?
pour voir si $adid est reconnue fait un echo

Et en faisant un truc sans objet du type:
Code:
$sql="select * from ma_table where id='$adid'";
$req=mysql_query($req);
while($result=mysql_fetch_array($req))
echo $result['id_text'];
 
WRInaute accro
Sans objet ça passe.

Merci pour ton coup de main.

Pour ma culture perso :) si quelqu'un voit comment faire en PDO je suis preneur.
 
WRInaute impliqué
C'est surement ton $reponse->fetch() qui ne va pas. Il ne créé pas ta variable $row.
Tu as la fonction fetch() et la fonction query() ?
 
WRInaute accro
Comme ci-dessous, ça fonctionne :D
Code:
<?php
    try
    {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=MA_BASE', 'user', '', $pdo_options);
        $reponse = $bdd->query("SELECT * FROM ma_table WHERE id=$adid");
        $valeur = $reponse->fetch();
    {
    ?>

            <?php
                    echo substr($valeur['id_text'], 0, 120);
            ?>

        <?php
    }
        $reponse->closeCursor();
    }
    catch(Exception $e)
    {
    die('Erreur : '.$e->getMessage());
    }
?>
Merci pour la leçon :wink:
 
Discussions similaires
Haut