Boucle ne prend que le dernier élément en compte
Posté : 01 avr. 2012, 23:24
Bonjour à tous,
Je n'ai pas pour habitude de demander de l'aide sur un forum mais là urgence et grosse galère oblige.
Voilà je suis actuellement en train de créer une feuilles d'heures que des employés devront compléter tous les jours.
J'ai donc créer un BDD de données avec, entre autre, pour tables employes et taches.
Pour chaque employés j'affiche les taches qui lui sont attribuées.
Les taches sont composées d'un id, d'un nom, d'un descriptif et d'un état (en cours ou fini).
J'ai donc fait une boucle afin d'afficher chaque tache.
Par défaut les taches ont un état "en cours". Cependant, si l'employés l'indique comme "fini" à l'aide de la liste déroulante alors celle ci devra changer dans la BDD.
Pour changer l'état j'ai fait : mysql_query("UPDATE taches SET etatTache='" . $etat_tache ."' WHERE idTache=" . $idTache."");
Mon souci est le suivant : seul le dernier élément de ma boucle est pris en compte. Il n'y a donc que le dernier élément qui peut changer l'état de la tache en "fini".
Voici ma boucle :
$result = mysql_query('SELECT * FROM taches');
while($sql = mysql_fetch_assoc($result)){
if ($sql["idEmp"]==$fiche[0] && $sql["momentTache"]=="apresmidi" ){
echo '<input type="text" name="idTache" value='.$sql["idTache"].'><br />';
echo '<input type="text" name="etat_tache" value='.$sql["etatTache"].'><br />';
echo '<div id="titre_tache">'.$sql["nomChantier"].' : </div><br />';
echo '<div id="descriptif_tache">'.$sql["descriptifTache"].'</div><br />';
echo '
<select name="etat_tache">
<option selected value="encours">En cours</option>
<option value="fini">Fini</option>
</select>
<br /><br />';
}
}
Pourriez vous m'éclaircir ? Merci d'avance
Je n'ai pas pour habitude de demander de l'aide sur un forum mais là urgence et grosse galère oblige.
Voilà je suis actuellement en train de créer une feuilles d'heures que des employés devront compléter tous les jours.
J'ai donc créer un BDD de données avec, entre autre, pour tables employes et taches.
Pour chaque employés j'affiche les taches qui lui sont attribuées.
Les taches sont composées d'un id, d'un nom, d'un descriptif et d'un état (en cours ou fini).
J'ai donc fait une boucle afin d'afficher chaque tache.
Par défaut les taches ont un état "en cours". Cependant, si l'employés l'indique comme "fini" à l'aide de la liste déroulante alors celle ci devra changer dans la BDD.
Pour changer l'état j'ai fait : mysql_query("UPDATE taches SET etatTache='" . $etat_tache ."' WHERE idTache=" . $idTache."");
Mon souci est le suivant : seul le dernier élément de ma boucle est pris en compte. Il n'y a donc que le dernier élément qui peut changer l'état de la tache en "fini".
Voici ma boucle :
$result = mysql_query('SELECT * FROM taches');
while($sql = mysql_fetch_assoc($result)){
if ($sql["idEmp"]==$fiche[0] && $sql["momentTache"]=="apresmidi" ){
echo '<input type="text" name="idTache" value='.$sql["idTache"].'><br />';
echo '<input type="text" name="etat_tache" value='.$sql["etatTache"].'><br />';
echo '<div id="titre_tache">'.$sql["nomChantier"].' : </div><br />';
echo '<div id="descriptif_tache">'.$sql["descriptifTache"].'</div><br />';
echo '
<select name="etat_tache">
<option selected value="encours">En cours</option>
<option value="fini">Fini</option>
</select>
<br /><br />';
}
}
Pourriez vous m'éclaircir ? Merci d'avance