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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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: 84

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