#1 Thu 16 December 2021 16:33
- croy
- Juste Inscrit !
- Date d'inscription: 16 Dec 2021
- Messages: 4
insert into base POSTGRESQL PHP
Bonjour à tous,
J'essaie d'intégrer des données dans une base postgresql via un formulaire php.
J'arrive bien à intégrer des données dans UNE SEULE table via une requete INSERT INTO mais je n'arrive pas à insérer des données dans plusieurs tables reliées avec des clés étrangères via un seul formulaire :
exemple du code ci-dessous : je remplis la table geolive.prestation puis je récupère l''id_prestation pour remplir la table geolive.diagnostic. Ca fonctionne bien sous pgadmin mais ca ne fonctionne pas en php.
voici le php :
Code:
$date_prestation = $_POST["date_prestation"]; $obs_prestation = $_POST["obs_prestation"]; $obs_conseil = $_POST["obs_conseil"]; $poids_recolte_tritu = $_POST["poids_recolte_tritu"]; $nb_litres = $_POST["nb_litres"]; $id_agent = $_POST["id_agent"]; $id_prop = $_POST["id_prop"]; $id_olivier = $_POST["id_olivier"]; $etat_sanitaire = $_POST["etat_sanitaire"]; $obs_diagnostic = $_POST["obs_diagnostic"]; $img_diag = $_POST["img_diag"]; $query = pg_query($connexion, "WITH ins1 AS (INSERT INTO geolive.prestation (date_prestation,obs_prestation,obs_conseil,poids_recolte_tritu,nb_litres,id_agent,id_prop) VALUES ('$date_prestation','$obs_prestation','$obs_conseil','poids_recolte_tritu','nb_litres','$id_agent','$id_prop') RETURNING id_prestation) INSERT INTO geolive.diagnostic (id_prestation, id_olivier, etat_sanitaire, obs_diagnostic, img_diag) SELECT id_prestation,'$id_olivier','$obs_diagnostic','$etat_sanitaire', '$obs_diagnostic', '$img_diag' FROM ins1;"); if ( $query ) { echo(" La nouvelle prestation a bien été ajoutée !"); }
Une erreur pourrait provenir du SELECT, il n'arriverait pas à aller chercher dans le formulaire pour remplir la table?
Si vous avez des pistes, je vous en remercie d'avance,
Cédric
Hors ligne
#2 Fri 17 December 2021 15:32
- Franck2908
- Participant actif
- Date d'inscription: 5 Mar 2010
- Messages: 85
Re: insert into base POSTGRESQL PHP
Bonjour,
dans votre requête INSERT, partie VALUES il manque des $ pour 'poids_recolte_tritu' et 'nb_litres'.
si ces champ sont des entiers là vous envoyez du texte ('poids_recolte_tritu' et 'nb_litres') et non la valeur de la variable $poids_recolte_tritu et $nb_litres.
cordialement
Franck
Dernière modification par Franck2908 (Fri 17 December 2021 15:34)
Hors ligne
#3 Fri 17 December 2021 15:54
- croy
- Juste Inscrit !
- Date d'inscription: 16 Dec 2021
- Messages: 4
Re: insert into base POSTGRESQL PHP
Ah oui, damned, merci Franck
Hors ligne