Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

Pied de page des forums

Powered by FluxBB