Modification des valeurs d'un tableau

abirgl Messages postés 147 Statut Membre -  
Pitet Messages postés 2845 Statut Membre -
Bonjour,
j'ai un tableau php et je veux effectuer des modifications sur quelques colonnes dans des lignes différentes, mon problème c'est que seulement les valeurs de la dernière ligne sont pris sont enregistrées dans toutes les autres,
Je vous montre mon code:

$xlibtch=$_POST['libtache'];
$nbltch=count($xlibtch);
$xheuredebtch=$_POST['heuredebtache'];
$xheurefintch=$_POST['heurefintache'];
echo "<br> Le nombre de taches déjà réalisées est : ".$nbltch."<br>";
$xt=0;
while($xt<$nbltch)
{
$tchToUpd=$xlibtch[$xt];
echo "<br>Libelle Tache".$xt." : ".$tchToUpd."<br>";
$hdebtchToUpd=$xheuredebtch[$xt];
echo "Heure debut de la tache".$xt." : ".$hdebtchToUpd."<br>";
$hfintchToUpd=$xheurefintch[$xt];
echo "Heure Fin de la tache".$xt." : ".$hfintchToUpd."<br>";
$nbHrTch=($hfintchToUpd-$hdebtchToUpd);
echo " Nombre d'heures".$xt." : ".$nbHrTch."<br>";

//Ce traitement est fait pour déterminer le code de la tache à partir de sa libelle
$sql_code_tache="select CodeTache from GI_Taches where Libelle='$tchToUpd' ";
$stmt_code_tache=sqlsrv_query($conn,$sql_code_tache);
$rslt_code_tache=sqlsrv_fetch_array($stmt_code_tache,SQLSRV_FETCH_NUMERIC);
$codeTch=implode($codeTch, $rslt_code_tache);
echo "Code tache : ".$codeTch." <br>";

//Ce traitement est fait pour déterminer le coût par heure de la tache à partir de sa libelle
$sql_coutParHrTch="select CoutparHeure from GI_Taches where Libelle='$tchToUpd'";
$stmt_coutParHrTch=sqlsrv_query($conn, $sql_coutParHrTch);
$rslt_coutParHrTch=sqlsrv_fetch_array($stmt_coutParHrTch, SQLSRV_FETCH_NUMERIC);
$CoutParHrTch=implode($chCoutParHrTch, $rslt_coutParHrTch);
echo "Cout par heure de la tache : ".$CoutParHrTch."<br>";

//Calculer le prix de revient : cout/heure * nbrHeure
$RevientTch=$CoutParHrTch * $nbHrTch;
echo "Revient : ".$RevientTch."<br>";

//Effectuer la modification
$sql_modif_tch="update GI_InterventiontTaches set DateDebut='$datdeb', HeureDebut='$hdebtchToUpd', DateFin='$datdeb', HeureFin='$hfintchToUpd', NombreHeure='$nbHrTch', PrixRevient='$RevientTch' where NIntervention='$idm'";
$stmt_modif_tch=sqlsrv_query($conn,$sql_modif_tch);
if($stmt_modif_tch===false)
{
die(print_r(sqlsrv_errors(),true));
}
else
echo " Modification de la ligne ".$xt." effectuée avec succès <br>";
$xt++;

}


Voici ce qui s'affiche suite à ce code :
http://static.ccm2.net/www.commentcamarche.net/pictures/RMIW1g8ziR5AaQ7DNOcMuC5tx5XqO0cPdvJ6BE9iAMTfeYto0ihXP11iyz7NLfiW-modiftch.png
http://static.ccm2.net/www.commentcamarche.net/pictures/RMIW1g8ziR5AaQ7DNOcMuC5tx5XqO0cPdvJ6BE9iAMTfeYto0ihXP11iyz7NLfiW-modiftch.png

Est ce que le problème est dans la boucle pour qu'il prenne seulement les données de la dernière ligne ? J'ai essayé avec une boucle for et c'est toujours le même résultat, J'espère que vous pourrez m'aider à résoudre ce problème et je vous remercie d'avance
A voir également:

1 réponse

Pitet Messages postés 2845 Statut Membre 527
 
Salut,

Si je comprend bien, le problème vient de l'enregistrement des données dans la base ?
Si oui, il semble que tu ais effectivement un problème dans la clause WHERE de ta requête sql : où est définie la variable $idm ?

Bonne journée,
1