Page 1 sur 2
Histoire de boucle
Posté : 17 oct. 2005, 14:27
par Domi_d
Bonjour,
Comment remplacer ce code par une boucle dont la première valeur est 1 (req1) et la dernière 64 (req64) :
$result1 = mysql_query("SELECT id,joueur from table where id='$id1'");
$req1 = mysql_fetch_object($result1);
$joueur1 = $req1->joueur; $id1=$req1->id;
$result2 = mysql_query("SELECT id,joueur from table where id='$id2'");
$req2 = mysql_fetch_object($result2);
$joueur2 = $req2->joueur; $id2=$req2->id;
---
$result64 = mysql_query("SELECT id,joueur from table where id='$id64'");
$req64 = mysql_fetch_object($result64);
$joueur64 = $req64->joueur; $id64=$req64->id;
et
<input type="hidden" name="joueur1" value="<? echo $joueur1; ?>"><input type="hidden" name="id1" value="<? echo $id1; ?>">
<input type="hidden" name="joueur2" value="<? echo $joueur2; ?>"><input type="hidden" name="id2" value="<? echo $id2; ?>">
---
<input type="hidden" name="joueur64" value="<? echo $joueur64; ?>"><input type="hidden" name="id64" value="<? echo $id64; ?>">
---------------------
Merci d'avance
Posté : 17 oct. 2005, 14:32
par zeus
si tu fait
$i = 1;
$joueur{$i} = 2;
echo $joueur1 // affiche 2
tu comprendras que tu peut faire
for($i = 1; $i <= 64; $i++) {
$result{$i} = mysql_query("SELECT id,joueur from table where id='$id{$i}'");
$req{$i} = mysql_fetch_object($result{$i});
$joueur{$i} = $req{$i}->joueur; $id{$i}=$req{$i}->id;
}
for($i = 1; $i <= 64; $i++) {
echo "<input type='hidden' name='joueur".$i."' value='".$joueur{$i}."'><input type='hidden' name='id".$i."' value='".$id{$i}."'>";
}
Posté : 17 oct. 2005, 14:51
par Domi_d
Merci pour ton aide zeus.
Cependant en regardant la source du code après validation, j'obtiens ceci :
<input type='hidden' name='joueur1' value=''><input type='hidden' name='id1' value=''>
A quoi est-ce dû ?
Posté : 17 oct. 2005, 14:54
par zeus
est-ce tu es sûr que $id1, 2, 64 contient quelquechose ?
Posté : 17 oct. 2005, 15:00
par Domi_d
Oui oui, puisqu'en testant avec req1, req2... écrit en dur sans boucle, ca retourne bien la valeur et l'id du joueur 1, joueur2...
Posté : 17 oct. 2005, 15:02
par zeus
essaye ça pour voir
for($i = 1; $i <= 64; $i++) {
echo "<input type='hidden' name='joueur".$i."' value='".{$joueur{$i}}."'><input type='hidden' name='id".$i."' value='".{$id{$i}}."'>";
}
Posté : 17 oct. 2005, 15:48
par Domi_d
J'obtiens une erreur :
Parse error: parse error, unexpected '{' in c:\program... sur la ligne
echo "<input type='hidden' name='joueur".$i."' value='".{$joueur{$i}}."'><input type='hidden' name='id".$i."' value='".{$id{$i}}."'>";
Posté : 17 oct. 2005, 15:49
par zeus
Et comme ça ?
$joueur_courant = $joueur{$i};
$id_courant = $id{$i};
echo "<input type='hidden' name='joueur".$i."' value='".$joueur_courant."'><input type='hidden' name='id".$i."' value='".$id_courant."'>";
Posté : 17 oct. 2005, 15:54
par Domi_d
Ben non, toujours des value vide ... bizarre
Posté : 17 oct. 2005, 15:56
par zeus
question très bête, est ce que les 2 bouts de script que je t'ai donné sont dans le même fichier ?

Posté : 17 oct. 2005, 16:00
par Domi_d
Parfaitement :
<body>
<?
require ('../../../../inc/config.php');
mysql_connect($serveur,$login,$pass);
mysql_select_db ($base);
for($i = 1; $i <= 64; $i++) {
$result{$i} = mysql_query("SELECT id,joueur from $table where id='$id{$i}'");
$req{$i} = mysql_fetch_object($result{$i});
$joueur{$i} = $req{$i}->joueur; $id{$i}=$req{$i}->id;
}
?>
<input type="hidden" name="table" value="<? echo $table; ?>">
<input type="hidden" name="open" value="<? echo $open; ?>">
<form action="etape3.php?table=<? echo $table; ?>&open=<? echo $open; ?>" method="post">
<?
for($i = 1; $i <= 64; $i++) {
echo "<input type='hidden' name='joueur".$i."' value='".$joueur{$i}."'><input type='hidden' name='id".$i."' value='".$id{$i}."'>";
}
?>
Posté : 17 oct. 2005, 16:02
par zeus
Essaye ce code et dit moi si il affiche les echo
<body>
<?
require ('../../../../inc/config.php');
mysql_connect($serveur,$login,$pass);
mysql_select_db ($base);
for($i = 1; $i <= 64; $i++) {
$result{$i} = mysql_query("SELECT id,joueur from $table where id='$id{$i}'");
$req{$i} = mysql_fetch_object($result{$i});
$joueur{$i} = $req{$i}->joueur;
echo $joueur{$i};
$id{$i}=$req{$i}->id;
echo $id{$i};
}
?>
<input type="hidden" name="table" value="<? echo $table; ?>">
<input type="hidden" name="open" value="<? echo $open; ?>">
<form action="etape3.php?table=<? echo $table; ?>&open=<? echo $open; ?>" method="post">
<?
for($i = 1; $i <= 64; $i++) {
echo "<input type='hidden' name='joueur".$i."' value='".$joueur{$i}."'><input type='hidden' name='id".$i."' value='".$id{$i}."'>";
}
?>
Posté : 17 oct. 2005, 16:07
par Domi_d
Tiens donc... je n'ai que le premier enregistrement de ma table qui s'affiche, pourtant il y a 180 entrées !
Posté : 17 oct. 2005, 16:14
par zeus
Fait tourner juste ce bout de code et dit moi ce qu'il se passe
for($i = 1; $i <= 64; $i++) {
$result = "SELECT id,joueur from $table where id='$id{$i}'";
echo $result;
}
Posté : 17 oct. 2005, 16:18
par Domi_d
il est écris à l'écran
SELECT id,joueur from top_d2_d1_tc where id='1'
jusqu'à id='64'