Faire un update en PDO

Résolu
Anouchka2586 Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   -  
Anouchka2586 Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Aidez-moi svp à faire un update en PHP et MySQL.
J'ai 2 tables sur lesquelles je fais des mises à jour. Le premier update sur la table 1 (infosfacture) fonctionne bien, mais j'ai un problème avec le update de la table 2 (facturation).


Voici la requete 1 $req1 avec son exécution :
$req1 = $base->prepare('UPDATE infosfacture
SET num = :num,
numtva = :numtva,
client = :client,
datefacture = :datefacture,
facturede = :facturede,
conditions = :conditions,
id_membre= :id_membre
WHERE id= :id');
$req1->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
$req1->bindParam(':num', $_POST['num'], PDO::PARAM_STR);
$req1->bindParam(':numtva', $_POST['numtva'], PDO::PARAM_STR);
$req1->bindParam(':client', $_POST['client'], PDO::PARAM_STR);
$req1->bindParam(':datefacture', $_POST['datefacture'], PDO::PARAM_STR);
$req1->bindParam(':facturede', $_POST['facturede'], PDO::PARAM_STR);
$req1->bindParam(':conditions', $_POST['conditions'], PDO::PARAM_STR);
$req1->bindParam(':id_membre', $_SESSION['id_membre'], PDO::PARAM_INT);
$req1->execute();


Voici la partie du formulaire de la requête 2 que je veux mettre à jour :


Voici la requête 2 $req2 et son exécution :
$req2 = $base->prepare('UPDATE facturation
SET designation = :designation,
quantite = :quantite,
prixht = :prixht,
taxe = :taxe
WHERE fk_facturation_id= :fk_facturation_id');
$params = array();
foreach ($_POST['designation'] as $key => $designation) {
$params[':designation'] = $designation;
$params[':quantite'] = $_POST['quantite'][$key];
$params[':prixht'] = $_POST['prixht'][$key];
$params[':taxe'] = $_POST['taxe'][$key];
$params[':fk_facturation_id'] = $_GET['id'];
$req2->execute($params);
}


Problème :
Il n'y a pas de mise à jour quand il y a une mise à jour sur plusieurs lignes cad designation/quantite/prixht/taxe. De plus quand je rajoute des lignes cad designation/quantite/prixht/taxe, ces lignes ajoutées ne sont pas prise en compte dans la mise à jour.
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,


Il n'y a pas de mise à jour quand il y a une mise à jour sur plusieurs lignes cad designation/quantite/prixht/taxe. De plus quand je rajoute des lignes cad designation/quantite/prixht/taxe, ces lignes ajoutées ne sont pas prise en compte dans la mise à jour.

Tu veux dire que lorsque tu as plusieurs lignes dans ton formulaire, les données ne se mettent pas à jour ?
Fais tu une boucle sur tes lignes ?
Existent elles déjà dans ta bdd ? (dans le cas contraire ce n'est pas un UPDATE mais un INSERT que tu dois faire)

Sachant que là.. sans connaitre la structure (et le contenu) de tes tables, le code de ton formulaire, le contenu de la variable $_POST .....il nous sera difficile de te donner plus de réponse...
Avant de poursuivre, je t'invite à lire (et à appliquer....) le contenu de ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code



0
Anouchka2586 Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   5
 
J'ai changé, je ne vais plus modifier la facture, je vais la cloner ensuite modifier son duplicata et faire une insertion. C'est plus simple, je l'ai déjà fait et ça marche !
0