réaffectation de variable

Petit nouveau ! | 6 Messages

29 sept. 2014, 11:35

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 ...

Mammouth du PHP | 571 Messages

29 sept. 2014, 12:29

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;
}

Petit nouveau ! | 6 Messages

29 sept. 2014, 12:39

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 ...)

Mammouth du PHP | 2278 Messages

29 sept. 2014, 12:44

que dit :
var_dump($data->div);
ou
print_r(($data->div);
?
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Petit nouveau ! | 6 Messages

29 sept. 2014, 12:54

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 ...

Mammouth du PHP | 571 Messages

29 sept. 2014, 12:55

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;
}

Petit nouveau ! | 6 Messages

29 sept. 2014, 13:00

niet ... ne fonctionne pas

Mammouth du PHP | 571 Messages

29 sept. 2014, 13:06

desolé j'ai oublié de concaténer:
$i=0;
while($data = $prov->fetch(PDO::FETCH_OBJ) ){
++$i;
 echo $data->div_.$i;
}

Petit nouveau ! | 6 Messages

29 sept. 2014, 13:10

pas grave ... j'avais corrigé mais rien n'y fait !!!

Mammouth du PHP | 571 Messages

29 sept. 2014, 13:29

Essaie de récupérer les données en une seule fois en utilisant fetchAll à la place de fecth

Petit nouveau ! | 6 Messages

29 sept. 2014, 13:41

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