Update sur deux table [Résolu/Fermé]

Messages postés
144
Date d'inscription
jeudi 7 mai 2015
Statut
Membre
Dernière intervention
26 octobre 2016
- - Dernière réponse : thibautB
Messages postés
144
Date d'inscription
jeudi 7 mai 2015
Statut
Membre
Dernière intervention
26 octobre 2016
- 5 févr. 2016 à 22:23
Bonjour,

Je voudrai pouvoir mettre à jour les valeurs de mes tables mais toute mes valeur ne sont pas situé dans la même table, serait-il possible de faire la requête sous cette forme?
update fraisforfait, lignefraiforfait set ff_mois = '".$_POST['mois']."', frf_libelle = '".$_POST['libelle']."', frf_montant = '".$_POST['montant']."', lff_quantite = '".$_POST['quantite']."', total = '".$_POST['prix_total']."' where fhf_id = '".$_POST['id']."' "


ou faut-il faire une requête imbriqué?


Afficher la suite 

2 réponses

Messages postés
21187
Date d'inscription
mardi 27 juin 2006
Statut
Contributeur sécurité
Dernière intervention
22 juin 2016
1228
0
Merci
Salut,

Est ce que cela t'orientes:

https://www.grafikart.fr/forum/topics/2006

A+
thibautB
Messages postés
144
Date d'inscription
jeudi 7 mai 2015
Statut
Membre
Dernière intervention
26 octobre 2016
1 -
oui mais la requete update ne marche pas alors que quand je la teste sur phpmyadmin ca marche voila ma requete :
"update lignefraisforfait, fraisforfait set ff_mois = '".$_POST['mois']."', frf_libelle = '".$_POST['libelle']."', frf_montant = '".$_POST['montant']."', lff_quantite = '".$_POST['quantite']."', total = '".$_POST['prix_total']."' where lignefraisforfait.frf_id = fraisforfait.frf_id and fraisforfait.frf_id = '".$_POST['id']."' ";
Regis59
Messages postés
21187
Date d'inscription
mardi 27 juin 2006
Statut
Contributeur sécurité
Dernière intervention
22 juin 2016
1228 -
Peux tu remplacer les données que tu update dans ta requête ?
thibautB
Messages postés
144
Date d'inscription
jeudi 7 mai 2015
Statut
Membre
Dernière intervention
26 octobre 2016
1 -
non c'est ça mon problème
voila la structure de mes deux tables :
la 1ère c'est lignefraisforfait : ou il y'a frf_id (clé étrangère), ff_mois(clé étrangère), vis_matricule (clé étrangère) et lff_quantite.
la deuxième table c'est fraisforfait ou il y'a frf_id (clé primaire), frf_libelle et frf_montant.
et quand je veut update les valeur ca ne marche pas
Regis59
Messages postés
21187
Date d'inscription
mardi 27 juin 2006
Statut
Contributeur sécurité
Dernière intervention
22 juin 2016
1228 -
Ce que je voulais voir c'était: "Est ce que tu peux mettre les valeurs que tu veux tester en dur dans ta requête ici pour voir si cela vient de la"...ou pas...
Messages postés
26971
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 décembre 2019
1918
0
Merci
Bonjour,

1 - ... on Récupère "proprement" les variables AVANT de les utiliser.
Pour se faire... on peut utiliser l'écriture TERNAIRE et ISSET ( ou !EMPTY)
Comme ceci :
//Récupération "Propre" des variables AVANT de les utiliser

$mois = isset($_POST['mois'])? $_POST['mois'] : '';
$libelle = isset($_POST['libelle'])? $_POST['libelle'] : '';
$montant = isset($_POST['montant'])? $_POST['montant'] : '';
//etc...


//On utilise ensuite ces variables dans la requête
$sql = "update fraisforfait, lignefraiforfait set ff_mois = '$mois', frf_libelle = '$libelle' ...etc.... ";


2 - Fais un ECHO de ta requête .... pour voir ce qu'elle contient..... puis (en récupérant donc le résultat du echo.... ) TESTES la directement dans ta BDD

jordane45
Messages postés
26971
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 décembre 2019
1918 -
De plus... je ne suis pas certain que tu puisses UPDATE deux tables en même temps.....(je n'ai jamais essayé tu me diras... ) Mais je crois qu'il va falloir que tu fasses l'UPDATE sur une première table ... PUIS sur la seconde....
thibautB
Messages postés
144
Date d'inscription
jeudi 7 mai 2015
Statut
Membre
Dernière intervention
26 octobre 2016
1 -
dans la BDD ca marche mais quand je le fait sur mes pages ca ne marche pas mais avec l'echo ca affiche bien les valeurs à la première ligne donc dans le echo ca donne :

update lignefraisforfait, fraisforfait set ff_mois = 'fevrier' frf_libelle = 'repas', frf_montant = '27', lff_quantite = '56', total = '1456' where lignefraisforfait.frf_id = fraisforfait.frf_id and fraisforfait.frf_id = '45' 


et avant que j'execute le update le frf_montant était à 26
jordane45
Messages postés
26971
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 décembre 2019
1918 -
Donc reste à voir ton code php
Regis59
Messages postés
21187
Date d'inscription
mardi 27 juin 2006
Statut
Contributeur sécurité
Dernière intervention
22 juin 2016
1228 -
Oui d'accord avec jordane.
Essaie de faire un update sur une seule table déjà, puis la seconde, avant de regrouper les deux.
thibautB
Messages postés
144
Date d'inscription
jeudi 7 mai 2015
Statut
Membre
Dernière intervention
26 octobre 2016
1 -
il manqué une virgule, donc ça marche.
merci beaucoup :)