Page 1 sur 1
requete qui recupère qu'un seul champ
Posté : 18 oct. 2011, 17:48
par xzena
bonjour,
j'ai fait une requête pour récupérer certains champs a partir d’un élément sélectionné dans un champ select:
Code : Tout sélectionner
$req="select * from table where table1.id in (select id from table2 where nom='$nom' and prenom='$prenom')";
$res=mysql_query($req);
echo $nom; ?>
et pour récupérer dans des input je fais ça :
<td width="251"><?php while ($row= mysql_fetch_assoc($res)) {
?>
<input type="text" name="chmap1" id ="chmap1" value="<?php echo $row['chmap1']; ?>" />
<?php } ?></td>
<td width="251"><?php while ($row= mysql_fetch_assoc($res)) {
?>
<input type="text" name="chmap2" id ="chmap2" value="<?php echo $row['chmap2']; ?>" />
<?php } ?></td>
mon souci c'est qu' il me récupère qu'un seul champ toujours, les autres non !
Alors merci pour votre aide
Re: requete qui recupère qu'un seul champ
Posté : 18 oct. 2011, 17:57
par soycd
Sers-toi de mysql_data_seek() après chaque mysql_fetch_assoc()
http://php.net/mysql_data_seek
Re: requete qui recupère qu'un seul champ
Posté : 18 oct. 2011, 18:17
par xzena
désolé j'ai consulter le lien..mais j'ai pas compris où je vais mettre là

Re: requete qui recupère qu'un seul champ
Posté : 18 oct. 2011, 18:37
par soycd
Cette fonction sert à repositionner le pointeur, dans ton cas, sur le 1er élément, 0 donc.
Chaque fois que tu lis le résulat d'un query avec fetch_assoc, le pointeur reste en fin de parcours, donc tu dois utiliser data_seek chaque fois que tu as besoin de parcourir une nouvelle fois un même résultat d'un query.
En gros :
$query = mysql_query($sql);
while( $line = mysql_fetch_assoc($query) )
{
// BLABLA
}
// Besoin de parcourir une nouvelle fois le résultat à partir du départ ?
mysql_data_seek($query, 0);
// Et voilà je peux refaire un fetch_assoc ^^
while( $line = mysql_fetch_assoc($query) )
{
// BLABLA²
}
Re: requete qui recupère qu'un seul champ
Posté : 18 oct. 2011, 19:31
par xzena
merci à vous mais ça pas marché dans mon cas :
Warning: mysql_data_seek() expects parameter 1 to be resource, string given in C:\wamp\www\application\fishier\test2.php on line 67
<td width="251"><?php while ($row= mysql_fetch_assoc($res)) {
mysql_data_seek($req, 0); // ligne 67
?>
<input type="text" name="champ1" id ="champ1" value="<?php echo $row['champ1'];
?>" />
<?php } ?></td>
??!
Re: requete qui recupère qu'un seul champ
Posté : 18 oct. 2011, 20:03
par Zahnzao
Tu ne dois pas le mettre dans ta boucle while mais après, juste avant ta deuxième boucle du champ2.
Re: requete qui recupère qu'un seul champ
Posté : 18 oct. 2011, 23:13
par maze
Pourquoi mysql_data_seek() ?
De ce que je vois, le problème c'est que tu fais 2 fois ta boucle while donc forcement à la 2e ben... Ça repart au début. T'as plusieurs enregistrements à sortir pour chaque chmap c'est ça ? Si j'ai bien compris (j'avoue que j'ai un doute) je ferais une boucle qui te met tout ça dans un tableau genre
while ($row= mysql_fetch_assoc($res)) {
chmap1[] = $row['chmap1'];
chmap2[] = $row['chmap2'];
}
Et pour afficher une boucle for type
for($i=0;$i<count($chmap1);$i++) {
echo "tes balises input...";
}
Re: requete qui recupère qu'un seul champ
Posté : 04 nov. 2011, 14:14
par xzena
c'est bon,ç'est reglé le problème.merci à vous.