par
anouchka2586 » 18 avr. 2018, 13:00
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 :
Code : Tout sélectionner
$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 :
Code : Tout sélectionner
$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.
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 :
[code]$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();[/code]
Voici la partie du formulaire de la requête 2 que je veux mettre à jour :
[img]https://img-19.ccm2.net/VhftY_YKlxSlMrmLAFs-9q710JY=/440x/89a3ef30762e465a8a1c7cadd59c9350/ccm-ugc/Sans_titre.png[/img]
Voici la requête 2 $req2 et son exécution :
[code]$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);
}[/code]
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.