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

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#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