Amélioration de mon script
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:
Code:
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> |
Et voici ma 2ème page
Code:
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");
?> |