Page 1 sur 1

réaffectation de variable

Posté : 29 sept. 2014, 11:35
par top16
Bonjour à tous,

Petit problème avec une réaffectation de variable. Voilà mon code qui construit un tableau nommé $data avec un enregistrement issu d'une table :

Code : Tout sélectionner

$prov = $cnx->prepare(" SELECT * FROM ma_table WHERE id=:cle "); $prov->execute(array('cle' => $ref)); $data = $prov->fetch(PDO::FETCH_OBJ);
Ce tableau contient : $data->div_1, $data->div_2, $data->div_3, $data->div_4
La variable $num contient une valeur comprise entre 1 et 4

Lorsque je veux afficher la valeur du tableau au moyen de :

Code : Tout sélectionner

echo ${'data->div_'.$num}


je n'obtiens qu'un résultat vide !..

J'ai du raté quelque chose (je ne suis pas un expert en PHP ... sourire). Merci d'avance pour l'aide que vous pourriez m'apporter ...

Re: réaffectation de variable

Posté : 29 sept. 2014, 12:29
par yann18
bonjour,
si le résultat de la requête contient plusieurs lignes autant boucler ce sur dernier:
while($data = $prov->fetch(PDO::FETCH_OBJ) ){
 echo $data->div_1;
 echo $data->div_2;
}

Re: réaffectation de variable

Posté : 29 sept. 2014, 12:39
par top16
Merci pour cette réponse ... J'y avais pensé mais j'ai absolument besoin d'utiliser cette donnée ($data->div_?) pour d'autres opérations (difficile à expliquer ...)

Re: réaffectation de variable

Posté : 29 sept. 2014, 12:44
par sirakawa
que dit :
var_dump($data->div);
ou
print_r(($data->div);
?

Re: réaffectation de variable

Posté : 29 sept. 2014, 12:54
par top16
var_dump affiche NULL ... print_r($data->div) est impossible mais print_r($data) affiche bien les quatres valeurs du tableau, à savoir $data->div_1 = "texte ...", $data->div_2 = "texte ...", etc ...

Re: réaffectation de variable

Posté : 29 sept. 2014, 12:55
par yann18
Merci pour cette réponse ... J'y avais pensé mais j'ai absolument besoin d'utiliser cette donnée ($data->div_?) pour d'autres opérations (difficile à expliquer ...)
$i=0;
while($data = $prov->fetch(PDO::FETCH_OBJ) ){
++$i;
 echo $data->div_$i;
}

Re: réaffectation de variable

Posté : 29 sept. 2014, 13:00
par top16
niet ... ne fonctionne pas

Re: réaffectation de variable

Posté : 29 sept. 2014, 13:06
par yann18
desolé j'ai oublié de concaténer:
$i=0;
while($data = $prov->fetch(PDO::FETCH_OBJ) ){
++$i;
 echo $data->div_.$i;
}

Re: réaffectation de variable

Posté : 29 sept. 2014, 13:10
par top16
pas grave ... j'avais corrigé mais rien n'y fait !!!

Re: réaffectation de variable

Posté : 29 sept. 2014, 13:29
par yann18
Essaie de récupérer les données en une seule fois en utilisant fetchAll à la place de fecth

Re: réaffectation de variable

Posté : 29 sept. 2014, 13:41
par top16
MERCI .... Effectivement si je fais un fetchAll, je peux afficher la variable ainsi :

Code : Tout sélectionner

echo $data[0][$num];
Ouf ... encore merci et bonne journée à toi