Modification des valeurs d'un tableau

Fermé
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017 - Modifié par abirgl le 26/11/2016 à 12:20
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 28 nov. 2016 à 11:41
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 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
28 nov. 2016 à 11:41
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