IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[PostgreSQL] erreurs dont je ne trouve pas l'origine


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Par défaut [PostgreSQL] erreurs dont je ne trouve pas l'origine
    Voila ma situation, j'ai replie deux listes déroulante grâce à des requêtes puis je veux insérer les données dans une base (les données sont ceux des listes) mais voila l'erreur qui m'est indiqué.

    Notice: Undefined index: nompren in c:\gestveh\insert.php on line 14
    insert into reserver (datedep, dateret, heuredep, heureret, nompren, service, lieu, codeveh) values ('2006-01-07', '2006-02-07', '10:20', '11:00:00', '', 'SGUI','CHTEFEY', 'VC046')
    Warning: pg_query(): Query failed: ERROR: insert or update on table "reserver" violates foreign key constraint "fk_serv-nom" DETAIL: Key (service,nompren)=(SGUI,) is not present in table "agent". in c:\gestveh\insert.php on line 24
    Voici le code de la page ajoute.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    	<tr>
    	        <td width="15%">nom  : </td>
            <td width="16%"><? echo "<form method=\"post\" action=\"insert.php\" enctype=\"multipart/form-data\">\n";
    /* début du script */
     
    $query=@pg_query("select distinct service from agent");
    if ($query) 
    	{
     
    			echo "<form method=\"post\">\n"; 
    			echo "<select name=\"service\">\n"; 
    			while ($array=@pg_fetch_array($query)) 
    			{ 
    				if ($choix == $array["service"]) 
    				{ 
    					echo "<option value=\"".$array["service"]."\" selected>".$array["service"]."</option>\n"; 
    				} 
    				else 
    				{ 
    					echo "<option value=\"".$array["service"]."\">".$array["service"]."</option>\n"; 
    				} 
    			} 
    		echo "</select>\n";
    		echo "</form>\n";
    	}
     
    ?>
    </td>
    		  <td>prénom : </td>
              <td><? echo "<form method=\"post\" action=\"insert.php\" enctype=\"multipart/form-data\">\n";
    		  /* début du script */
    $query2=@pg_query("select distinct nompren from agent");
    if ($query2) 
    	{
    			echo "<form method=\"post\">\n"; 
    			echo "<select name=\"nompren\">\n"; 
    			while ($array2=@pg_fetch_array($query2)) 
    			{ 
    				if ($choix2 == $array2["nompre"]) 
    				{ 
    					echo "<option value=\"".$array2["nompren"]."\" selected>".$array2["nompren"]."</option>\n"; 
    				} 
    				else 
    				{ 
    					echo "<option value=\"".$array2["nompren"]."\">".$array2["nompren"]."</option>\n"; 
    				} 
    			} 
    		echo "</select>\n"; 
    		echo "</form>\n";
    	}
    	echo "</form>\n";
    ?></td>
    Voici le code de la page insert.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    include ("connect.php"); //appel connect.php
    $datedep=$_POST["txt_datedep"];
    $dateret=$_POST["txt_dateret"];
    $ser=$_POST["service"];
    $nom=$_POST["nompren"];
    $des=$_POST["txt_des"];
    $hf=$_POST["txt_hf"];
    $hd=$_POST["txt_hd"];
    //$ve=$_POST["txt_ve"];
    $cod=$_POST["txt_cod"];
    //$com=$_POST["txt_com"];
     
    $req1="insert into reserver (datedep, dateret, heuredep, heureret, nompren, service, lieu, codeveh) values ('$datedep', '$dateret', '$hd', '$hf', '$nom', '$ser','$des', '$cod')";
    echo $req1;
    $res1=pg_query($test,$req1);
    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, tu as écrit
    et
    Un des deux doit être correct, mais lequel : ;-)

    L'erreur vient peut-être de là

  3. #3
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Par défaut
    Oui j'avais vue ca j'ai rectifier ca ne marche toujour pas lol.

  4. #4
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Essaie de faire
    Pour voir ce que contient ta requête SQL

    Je dirais que l'erreur vient des $_POST à première vue, mais on va vérifier ;-)

  5. #5
    Membre émérite
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Par défaut
    Citation Envoyé par flo78
    Warning: pg_query(): Query failed: ERROR: insert or update on table "reserver" violates foreign key constraint "fk_serv-nom" DETAIL: Key (service,nompren)=(SGUI,) is not present in table "agent". in c:\gestveh\insert.php on line 24
    C'est un problème de clé étrangère.
    T'esaies d'inséré une valeur (la clé étrangère) dans une table alors qu'elle n'existe pas dans la table qui contient la clé primaire ?
    La solution serait d'insérer d'abord la clé primaire, puis la clé étrangère.

  6. #6
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Par défaut
    voila ce que me donne le echo $req1 :

    insert into reserver (datedep, dateret, heuredep, heureret, nompren, service, lieu, codeveh) values ('2006-01-07', '2006-02-07', '10:20', '11:00:00', '', 'SGUI','CHTEFEY', 'VC046')

    comme tu peu le voir il y a pas le un champ vide dans values c'est le champs 'nompren'. Au fait c que j'arrive pas a récuperer la valeur de 'nompren' qui se trouve dans la liste.

  7. #7
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Par défaut
    Non le probleme c'est que j'ai créé deux listes 'service' et 'nompren' qui sont clef primaire d''une table agent et cles secondaire de la table réserver.
    J'ai fait un teste quand je supprime l'une des deux listes le script marche j'arrive a inséré dans la base. Alors pourquoi quand je fait la meme chose ca en marche pas??

Discussions similaires

  1. etrangeté dont je ne trouve pas la source.
    Par frp31 dans le forum Unix
    Réponses: 16
    Dernier message: 03/08/2011, 08h40
  2. Réponses: 4
    Dernier message: 17/09/2010, 22h37
  3. erreur 1366 je ne trouve pas de solution
    Par moustiqu3 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 26/10/2008, 22h24
  4. Ma requête contient une erreur, que je ne trouve pas
    Par adrien.ren dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/05/2008, 10h32
  5. Réponses: 20
    Dernier message: 08/06/2006, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo