Deux while à la suite - PHP - Programmation
Marsh Posté le 26-08-2010 à 10:47:02
Il faut juste remettre le pointeur de $sql à 0 juste avant de refaire ton 2ème while.
mysql_data_seek ($sql,0);
Marsh Posté le 26-08-2010 à 11:26:50
Non, Non,non et encore NON!
Willy54, sépare tes données de ton contenu HTML.
Dans ton cas t'as 2 options.
Soit tu te construits un petit tableau associatif id=>nom dans ta boucle while "mysql", et après tu le ré-utilises plus loin.
Soit tu fait ta boucle mysql, et au lieu de faire directement un "echo", tu remplis des variables contenant le html (style $out = "<select><br"; ...)
Sinon bon y a toujours la 3ème option, la meilleur, de passer par un modèle vraiment MVC, mais bon c'est un peu plus compliqué à faire
Voilà
Marsh Posté le 26-08-2010 à 11:54:17
Oui certes... Mais c'est surement un débutant donc je répondais à sa question.
Sinon on peut débattre également de sa façon d'écrire le XHTML.
Marsh Posté le 26-08-2010 à 13:02:38
Oui c'est un débutant, mais c'est pas une raison de lui donner de mauvais conseils...
Les 2 premiers commentaires sont simples à appliquer et le mettront déjà sur la bonne voie, vu qu'ils partent déjà dans le sens "séparation des couches", bien que ce soit encore loin du compte..
Marsh Posté le 27-08-2010 à 11:38:08
esox_ch, je ne sais pas faire ton premier conseil. Concernant le second, j'ai essayé, sans succès.
Seule la méthode de scarf fonctionne. Or apparemment il ne faut pas que je fasse ça. Que faire?
Marsh Posté le 27-08-2010 à 11:59:22
Tu peux faire ça, par exemple:
Code :
|
Marsh Posté le 27-08-2010 à 12:18:28
ReplyMarsh Posté le 27-08-2010 à 13:24:28
willy54 a écrit : scarf3ss3, ça fonctionne parfaitement. |
C'est juste un début, mais tu peux améliorer tout ça en utilisant des fonctions, voir une class.
Marsh Posté le 28-08-2010 à 00:47:13
juste une remarque : quel est l'intérêt des quotes dans cette ligne ?
$base = mysql_connect (''.$cserveur.'', ''.$clogin.'', ''.$cpassword.'');
Bien plus simple et largement suffisant :
$base = mysql_connect ($cserveur, $clogin, $cpassword);
Marsh Posté le 26-08-2010 à 10:41:58
Bonjour voici mon code php:
$base = mysql_connect (''.$cserveur.'', ''.$clogin.'', ''.$cpassword.'');
mysql_select_db (''.$cbasedd.'', $base) ;
$req = "SELECT * FROM joueurs WHERE s20102011='1' ORDER BY id ASC";
$sql = mysql_query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
echo "<FORM method=post action=''>";
echo "<SELECT name='joueurun'>";
while ($data = mysql_fetch_array($sql)) {
echo "<OPTION VALUE='$data[id]'>$data[nom]</OPTION>";
}
echo "</SELECT><br>";
echo "<SELECT name='joueurdeux'>";
while ($data = mysql_fetch_array($sql)) {
echo "<OPTION VALUE='$data[id]'>$data[nom]</OPTION>";
}
echo "</SELECT><br>";
echo "<INPUT type='submit' value='Confirmer'></FORM>";
Le problème c'est qu'à l'affichage le premier champ SELECT affiche bien quelque chose (liste des joueurs), mais celui d'en dessous est vide. Que faire?