Bonsoir,
Je recontre un soucis avec mon code php. Lorsque j'effectue un simple changement (par exemple 1 devient 2 et 2 devient 1 dans mon menus déroulant) le changement des données dans la bdd se passe très bien. par contre, si je fais 3 changements (1 devient 2 puis 3 devient 1) alors les changements dans la bdd ne correspondent pas aux choix.
Merci par avance pour votre aide.
Voici mes codes:
1ère page:
Et voici ma 2ème page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112 <?php>// Connection au serveur + Sélection de la base de données. mysql_connect("localhost","root",""); mysql_select_db("rfm"); //Retour du nom de la table joueur(x) contenant l'équipe par rapport au pseudo du joueur connecté. $retinfo = mysql_query("SELECT tablejoueurs FROM info WHERE pseudo='$pseudo'")or die(mysql_error()); while ($rettable = mysql_fetch_array($retinfo)) { $table = $rettable['tablejoueurs']; } //Remise en ordre des numéros des joueurs. mysql_query("UPDATE $table SET numero='1'WHERE id='1'")or die(mysql_error()); mysql_query("UPDATE $table SET numero='2'WHERE id='2'")or die(mysql_error()); mysql_query("UPDATE $table SET numero='3'WHERE id='3'")or die(mysql_error()); //Retour des infos propres à chaque joueur de l'équipe et mise en tableau des infos. $query_Recordset1 = "SELECT place, nom, prenom, age FROM $table ORDER BY id ASC"; $Recordset1 = mysql_query($query_Recordset1) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); mysql_close(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> <style type="text/css"> <!-- #form1 table { float: left; } --> </style> </head> <body> <!--mise en forme du tableau des menus déroulants.--> <form id="form1" name="form1" method="post" action="modif_placebis.php"> <label> <table width="60" height="140" border="1"> <tr> <th width="50" height="35" scope="col">numero</th> </tr> <tr> <td height="25"><select name="numero1" onchange="rang(0)"> <option value="1"selected="selected">1</option> <option value="2">2</option> <option value="3">3</option> </select></td> </tr> <tr> <td height="25"><select name="numero2" onchange="rang(1)"> <option value="1">1</option> <option value="2"selected="selected">2</option> <option value="3">3</option> </select></td> </tr> <tr> <td height="25"><select name="numero3" onchange="rang(2)"> <option value="1">1</option> <option value="2">2</option> <option value="3"selected="selected">3</option> </select></td> </tr> </table> <!--mise en forme du tableau des infos des joueurs.--> <table height="80" border="1"> <tr> <th height="35">place</th> <th height="35">nom</th> <th height="35">prenom</th> <th height="35">age</th> </tr> <?php do { ?> <tr> <td height="25"><?php echo $row_Recordset1['place']; ?></td> <td><?php echo $row_Recordset1['nom']; ?></td> <td><?php echo $row_Recordset1['prenom']; ?></td> <td><?php echo $row_Recordset1['age']; ?></td> </tr> <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> </table> <input type="submit" value="Valider" /> </label> </form> </body> </html> <!--Code Javascript pour les menus déroulants.--> <script type="text/javascript"> var sel; // Variable pour récupérer tous les <select> var valeurs = []; // Tableau pour garder en mémoire les valeurs function rang(nb) { // En paramètre l'indice du <select> var val = sel[nb].value; // On garde dans "val" la valeur du <select> modifié for(var i=0,l=sel.length;i<l;i++) { // On parcourt la totalité des <select> if((i!=nb) && (sel[i].value == val)) { // Si ce n'est pas le <select> modifié et que la valeur correspond sel[i].value = valeurs[nb]; // On lui applique l'ancienne valeur de <select> modifié valeurs[i] = valeurs[nb]; // Et on enregistre le changement dans le tableau des valeurs } } valeurs[nb] = val; // On enregistre également le changement du <select> modifié } window.onload=function() { // Au chargement (initialisation) sel = document.getElementsByTagName("select"); // On récupère tous les éléments <select> dans "sel" for(var i=0,l=sel.length;i<l;i++) { // On parcourt tout valeurs.push(sel[i].value); // Et on sauvegarde les valeurs dans le tableau "valeurs". } } </script>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <?php>//Connection au serveur + Sélection de la base de données. mysql_connect("localhost","root",""); mysql_select_db("rfm"); //Retour du nom de la table joueur(x) contenant l'équipe par rapport au pseudo du joueur connecté. $retinfo = mysql_query("SELECT tablejoueurs FROM info WHERE pseudo='$pseudo'")or die(mysql_error()); while ($rettable = mysql_fetch_array($retinfo)) { $table = $rettable['tablejoueurs']; } //Retour des variables des formulaires. $numero1=$_POST['numero1']; $numero2=$_POST['numero2']; $numero3=$_POST['numero3']; //Lecture des données des joueurs en fonction de leur classement. $retourbddj1 = mysql_query("SELECT place, nom, prenom, age FROM $table WHERE id=1")or die(mysql_error()); while ($donnees = mysql_fetch_array($retourbddj1)) { $place1 = $donnees['place']; $nom1 = $donnees['nom']; $prenom1 = $donnees['prenom']; $age1 = $donnees['age']; } $retourbddj2 = mysql_query("SELECT place, nom, prenom, age FROM $table WHERE id=2")or die(mysql_error()); while ($donnees = mysql_fetch_array($retourbddj2)) { $place2 = $donnees['place']; $nom2 = $donnees['nom']; $prenom2 = $donnees['prenom']; $age2 = $donnees['age']; } $retourbddj3 = mysql_query("SELECT place, nom, prenom, age FROM $table WHERE id=3")or die(mysql_error()); while ($donnees = mysql_fetch_array($retourbddj3)) { $place3 = $donnees['place']; $nom3 = $donnees['nom']; $prenom3 = $donnees['prenom']; $age3 = $donnees['age']; } //Modification du numero des joueurs dans la base de donnée en fonction des choix de l'utilisateur. mysql_query("UPDATE $table SET numero='$numero1'WHERE id='1'")or die(mysql_error()); mysql_query("UPDATE $table SET numero='$numero2'WHERE id='2'")or die(mysql_error()); mysql_query("UPDATE $table SET numero='$numero3'WHERE id='3'")or die(mysql_error()); //Déplacement des attributs propres des joueurs sélectionnés à leur nouvel emplacement. mysql_query("UPDATE $table SET place='$place1',nom='$nom1',prenom='$prenom1', age='$age1'WHERE numero='1'")or die(mysql_error()); mysql_query("UPDATE $table SET place='$place2',nom='$nom2',prenom='$prenom2', age='$age2'WHERE numero='2'")or die(mysql_error()); mysql_query("UPDATE $table SET place='$place3',nom='$nom3',prenom='$prenom3', age='$age3'WHERE numero='3'")or die(mysql_error()); mysql_close(); //header("location:gest_equipebis.php"); ?>
Partager