Extraire et enregistrer les valeurs d'un champs

Eléphanteau du PHP | 24 Messages

22 janv. 2008, 17:37

Bonjour,
Je souhaite utiliser des informations provenant d'une table afin de remplir certains champs "value" d'un formulaire. Le champs "réponses" de ma table contient cinq valeurs que je souhaite conserver dans des variables différentes.
Avec un "while" je sais afficher successivement ces valeurs mais comment extrait-on lesdites valeurs pour les conserver dans cinq variables différentes ?
Merci de votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 janv. 2008, 17:55

Le plus simple est sans doute d'utiliser un tableau qui contiendra tes 5 valeurs.

Sinon tu peux également utiliser la syntaxe de php qui permet de définir des variables dynamiquement : ${"nomDeLaVariable"}
En effet, tu peux ainsi concaténer des chaines pour constituer le nom de la variable, et donc par exemple y insérer un compteur que tu incrémentes à chaque itération : ${"var" . $i} ce qui te donnera au final $var1, $var2, etc.

M'enfin le tableau reste quand même à mon avis la meilleure solution, $tableau[0], $tableau[1], etc.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 24 Messages

22 janv. 2008, 18:25

Merci Ryle,
J'ai travaillé sur un truc comme çà et cela fonctionne. Confirmez-vous que c'est OK ?

Code : Tout sélectionner

<?php $i = 1 ; //Compteur. while ($donnees2 = mysql_fetch_array($requete) ) { $resultat[$i] = $donnees2['reponses']; //Echo de vérif. echo $resultat[$i] ; //On incrémente le compteur. $i++; } ?>
Un echo $resultat[3] par exemple affiche correctement la 3ème valeur.

Eléphant du PHP | 112 Messages

23 janv. 2008, 02:01

C'est ce que j'allais proposer...
D'autant plus que sous une autre forme, j'avais posé ici une question dont la réponse était celle que tu as trouvé toi-même.
B'nuit

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 janv. 2008, 11:42

Je confirme, c'est OK :)

Pour être tout à fait rigoureux, il te faudrait déclarer le tableau au préalable (sans quoi php envoi un message de type "Notice : la variable machin n'est pas définie", qui ne gène en rien l'exécution et sont généralement désactivés sur la plupart des serveurs, mais c'est plus propre :))

Par ailleurs, en php il est possible d'alimenter un tableau indexé sans utiliser de compteur. Le fait d'ajouter un nouvel élément au tablea le place automatiquement à l'index suivant (tout comme le fait la fonction array_push()). Bon, ça c'est juste pour info, et ton code est très bien comme il l'est, c'est juste pour dire que ça existe si un jour tu tombes dessus :
<?php 
$resultat = array(); // déclaration préalable du tableau
while ( $donnees2 = mysql_fetch_array($requete) ) 
{ 
        $resultat[] = $donnees2['reponses']; // le fait de ne rien mettre entre les [] ajoute l'élément au bout du tableau
} 
//Echo de vérif. 
echo $resultat[3] ; // et de la même manière tu peux utiliser/afficher n'importe quel élément 
?>
Cela revient au même que ce que tu as fait, c'est uniquement pour info :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 24 Messages

23 janv. 2008, 18:27

Merci pour les informations Ryle.
J'utilise du reste ta solution que je trouve plus "propre" et concise.
Bye.