J'ai compris !
Tu affiches un tableau avec plusieurs lignes, représentant les champs des lignes de ta base.
Mais tu mets ça dans une seule form avec autant de boutons submit.
Premiere ligne:
tes champs se moment nom, prenom, etc...
deuxième ligne:
tes champs se moment nom, prenom, etc...
etc..
lorsque tu cliques sur un des boutons submit il poste tous les champs de ton formulaire, mais comme dans chaque ligne ils ont le même nom, ce sont les valeurs des champs de la dernière ligne qui sont envoyés dans les varaibles $_POST['nom'] etc...
donc il faut que tu fasses autant de <form que de lignes avec chaqun leur bouton Submit.
mets donc la ligne <form.... dans ta boucle while (et </form aussi bien sûr)
Et aussi mets l'input de l'user_id en champ caché type="hidden", car si l'utilisateur le modifie le script ne s'y retrouvera plus.
Essayes ça:
<?php
$connexion = mysql_connect("localhost", "root", "")
or die ("connexion au serveur impossible.");
$db = mysql_select_db('gestion_stock', $connexion);
// selectionner toutes les USERS présentés dans la tbluser
$query = "SELECT nom, prenom, adresse, temps_de_travail, fonction, role_utilisateur, user_ID FROM tbluser ORDER BY nom";
$result = mysql_query($query) or die ('Erreur. La requête ne peut pas être effectuée.
L\'erreur retournée est : '.mysql_error());
?>
<TABLE BORDER='1'>
<TR><TH>Nom</TH><TH>Prénom</TH><TH>Adresse</TH><TH>Temps de travail</TH><TH>Fonction</TH><TH>Rôle_utilisateur</TH><TH>Sélection</TH><TH>Enregistrer modifs</TH></TR>
<?php
while ($ligne = mysql_fetch_row($result))
{
$nom = $ligne[0];
$prenom = $ligne[1];
$adresse = $ligne[2];
$temps_de_travail = $ligne[3];
$fonction = $ligne[4];
$role_utilisateur = $ligne[5];
$user_id = $ligne[6];
?>
<form name="modification_utilisateur" method="post" action="modif_user.php">
<TR><TD><input type="text" name="nom" size="15"value="<?php echo $nom; ?>"></TD>
<TD><input type="text" name="prenom" size="15" value="<?php echo $prenom; ?>"></TD>
<TD><input type="text" name="adresse" size="15" value="<?php echo $adresse; ?>"></TD>
<TD><input type="text" name="temps" size="15" value="<?php echo $temps_de_travail; ?>"></TD>
<TD><input type="text" name="fonction" size="15" value="<?php echo $fonction; ?>"></TD>
<TD><input type="text" name="role_utilisateur" size="15" value="<?php echo $role_utilisateur; ?>"></TD>
<TD align="center"><input type="hidden" name="user_id" value="<?php echo $user_id; ?>"></TD>
<TD align="center"><input type="submit" name="Enregistrer" value="OK"></TD></TR>
</form>
<?php
} ?>
</TABLE>
essayes aussi en ajoutant dans modif.php un print_r($_POST);
pour voir ce que tu reçois
Sinon verifies bien que tes champs de ta base aient bien le même nom que dans ton script (majusqules/minuscules)
j'ai refait le code en supprimant le META REFRESH et ajouté le print_r($_POST), j'ai testé (modifier plusieurs lignes en plusieurs fois pour bien voir mais je n'ai pas touché la dernière ligne) alors après exécution il modifie toujours la dernier ligne de la table. Je constate que le problème ne vient pas du META REFRESH et le print_r($_POST) m'affiche en mise à jour cette dernière ligne-là que je n'avais pas touché