quote($tagLib); // if (!empty($code1)) $code1 = $idPdo->quote($code1); // if (!empty($code2)) $code2 = $idPdo->quote($code2); // if (!empty($code3)) $code3 = $idPdo->quote($code3); // if (!empty($imageCA)) $imageCA = $idPdo->quote($imageCA); require_once ("../_include/_fonctions/fonctions.gene.php"); include_once ($includePathAdmin. "/_fonctions/gTranslate.php"); $prixHT=(float)$prixHT; $prixHT=formatNB($prixHT,'MYSQL'); $prixTTC=(float)$prixTTC; $prixTTC=formatNB($prixTTC,'MYSQL'); // ----------------------------------------------------- // Mise à jour du libellé pour chaque Langue // ----------------------------------------------------- if ($tagLib != '' && $tagLib != '-' && $upTagLib=='taglib') { for ($i=0; $i<($_SESSION['nbLgActives']); $i++) { if (isset($debug[2]) && $debug[2] == '1') { $debugMsg .= monDebug(2, ['$tableLangueCode[' => $i, ']' => $tableLangueCode[$i], '$_SESSION[lgCouranteCode]' => $_SESSION['lgCouranteCode'] ], 'reqUpdateLibDyn_propager.php');} if ($tableLangueCode[$i] != $_SESSION['lgCouranteCode']) { $tagLib= gTranslate($tagLib, strtolower( substr ($tableLangueCode[$i], 0, -1) ) ); if (isset($debug[2]) && $debug[2] == '1' ) { $debugMsg .= monDebug (1,['tagLib translated' => $tagLib],''); } } try { // Préparer la requête SQL avec des paramètres liés pour plus de sécurité $reqUpdate = "UPDATE `" .$catable. "` SET nom = :tagLib WHERE idLg = :lg AND id = :idLib"; // Préparer la requête avec PDO $stmt = $idPdo->prepare($reqUpdate); // Lier les paramètres $stmt->bindParam(':tagLib', $tagLib, PDO::PARAM_STR); $stmt->bindParam(':lg', $tableLangueCode[$i], PDO::PARAM_STR); $stmt->bindParam(':idLib', $idLib, PDO::PARAM_INT); // Debug: afficher la requête exécutée if (isset($debug[2]) && $debug[2] == '1') { $reqDebug = str_replace( [':tagLib', ':lg', ':idLib'], [ $idPdo->quote($tagLib), $idPdo->quote($lg), (int)$idLib ], $reqUpdate ); $debugMsg .= monDebug(2, ['reqUpdate' => $reqDebug], 'reqUpdateCaPers.php'); } // Exécuter la requête $stmt->execute(); // Vérifier si la requête a été exécutée avec succès if ($stmt->rowCount() > 0) { // Si des lignes ont été mises à jour, succès $admMsg .= '
Mise à jour du libellé effectuée avec succès'; $admMsgClass = 'ok'; } else { // Si aucune ligne n'a été modifiée => on fait rien // /$admMsg .= 'Aucune mise à jour effectuée, vérifiez vos données.'; // $admMsgClass = 'ko'; //$erreurSQL=1; } } catch (PDOException $e) { // Gestion des exceptions : en cas d'erreur PDO, on capture l'exception if (isset($debug[2]) && $debug[2] == '1') { $debugMsg .= monDebug(2, ['Erreur lors de la mise à jour du libellé :' => $e->getMessage()], '');} $admMsgClass = 'ko'; $erreurSQL=1; // Debug: afficher la requête exécutée if (isset($debug[2]) && $debug[2] == '1') { $debugMsg .= monDebug (2, ['reqUpdate' => $reqUpdate], basename(__FILE__)); } } }//for } // ----------------------------------------------------- // Mise à jour des autres champs // ----------------------------------------------------- $updateFields = []; // Ajouter les champs à mettre à jour seulement s'ils sont définis if ($tagOrdre !== '') { $updateFields['ordre'] = $tagOrdre; } if ($code1 !== '') { $updateFields['code1'] = $code1; } if ($code2 !== '') { $updateFields['code2'] = $code2; } if ($code3 !== '') { $updateFields['code3'] = $code3; } if ($prixHT !== '') { $updateFields['prixHT'] = $prixHT; } if ($prixTTC !== '') { $updateFields['prixTTC'] = $prixTTC; } if ($imageCA !== '') { $updateFields['imageCA'] = $imageCA; } if ($idTVA !== '' && $idTVA !== 'undefined') { $updateFields['tvaTaux'] = $idTVA; } // Vérifier s'il y a des champs à mettre à jour if (!empty($updateFields)) { // Construction dynamique de la requête $setClause = []; foreach ($updateFields as $field => $value) { $setClause[] = "`$field` = :$field"; } $setClauseStr = implode(', ', $setClause); // Préparer la requête SQL avec des paramètres liés pour plus de sécurité $reqUpdate = "UPDATE `" . $catable . "` SET " . $setClauseStr . " WHERE id = :idLib ;"; // Debug : afficher la requête SQL réelle (debug only) if (isset($debug[2]) && $debug[2] == '1') { $reqDebug = $reqUpdate; // Remplacement des champs dynamiques foreach ($updateFields as $field => $value) { if ($value === null) { $val = 'NULL'; } elseif (is_numeric($value)) { $val = $value; } else { $val = $idPdo->quote($value); } $reqDebug = str_replace(":$field", $val, $reqDebug); } // Remplacement de l'ID $reqDebug = str_replace(':idLib', (int)$idLib, $reqDebug); // $reqDebug = str_replace(':lg', $idPdo->quote($lg), $reqDebug); $debugMsg .= monDebug( 2, ['reqUpdate' => $reqDebug], 'reqUpdateCaPers.php' ); } try { // Préparer la requête avec PDO $stmt = $idPdo->prepare($reqUpdate); // Lier les paramètres foreach ($updateFields as $field => $value) { $stmt->bindValue(":$field", $value); } $stmt->bindValue(':idLib', $idLib, PDO::PARAM_INT); // $stmt->bindParam(':lg', $lg, PDO::PARAM_STR); // Exécuter la requête if ($stmt->execute()) { $admMsg .='Mise à jour de la valeur effectuée avec succès' ; $admMsgClass = 'ok'; } else { $admMsg .='Echec de la mise à jour de la valeur'; $admMsgClass = 'ko'; $erreurSQL = 1; } } catch (PDOException $e) { // En cas d'exception, afficher l'erreur if (isset($debug[2]) && $debug[2] == '1') { $debugMsg .= monDebug(2, ['Erreur lors de la mise à jour :' => $e->getMessage()], '');} $admMsgClass = 'ko'; $erreurSQL = 1; } } ?>