Modification des valeurs d'un tableau [Fermé]

Signaler
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017
-
Messages postés
2371
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
13 janvier 2021
-
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

1 réponse

Messages postés
2371
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
13 janvier 2021
444
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci