Se connecter / S'enregistrer
Votre question

comment alimenter une table liée à une autre table via une clé étrangère?

Tags :
  • Autres
  • Php
  • Programmation
Dernière réponse : dans Programmation
8 Octobre 2012 22:37:43

Bonjour
je reviens une fois de plus sur le forum pour demander de l'aide.en effet , je suis debutante en php et j'ai une base de données de plus d'une dizaine de tables et je suis en train de monter des formulaires via php pour pourvoir inserer les données dans mes tables.le souci que je rencontre est que j'ai une table qui est liée à deux autres tables et donc possede deux clés étrangères.j'ai lu sur les forums et fait plusieurs recherches sur google, pour savoir comment arriver à inserer les données dans cette table.j'ai pu créer deux scripts php pour cela, le probleme que je rencontre c'est que ma table n'enregistre aucune données, elle reste vide, malgré plusieurs tentatives rien ne fonctionne.
toute proposition de reponses sera la bienvenue.
voici mon code:
fichier:formulaire de saisir
  1. <head>
  2. <title>page de saisie Especes_vegetales</title>
  3. <style type="text/css">
  4. body {
  5. background-color:#000;
  6. background-repeat: no-repeat;
  7. color: #000;
  8. background-color: #FFF8DC;
  9. background-position: center;
  10. }
  11. </style>
  12. </head>
  13. <tr>
  14. <td height="1000" valign="top" bgcolor="#FFF8DC">
  15. <h1>Systemes de Gestions des Especes <h1>
  16.  
  17. <?php
  18.  
  19. $link = mysql_connect('localhost', 'root', '');// connexion à la base de données
  20. if (! $link)
  21. {
  22. die ('<p>Impossible de se connecter: '. mysql_error().'</p>');
  23. }
  24. $db = mysql_select_db('mabase', $link) ;// selection de la base de données
  25. if(! $db){
  26. die ('<p>ne pourrait pas se lire la base de données: '. mysql_error().'</p>');
  27.  
  28. }
  29. $sqlquery1="select Nom_Genre,idGenre from genre";
  30.  
  31. $queryresult1=mysql_query($sqlquery1);
  32.  
  33. $sqlquery2="select Nom_Type,idType_Biologique from type_biologique";
  34.  
  35. $queryresult2=mysql_query($sqlquery2);
  36.  
  37. ?>
  38. <h2> Formulaire de Saisie: Espèce_Végétale</h2>
  39. <form name="espece" method="post" action="ajouterEspece.php"
  40. <p> Nom_Genre:
  41. <select name="Nom_Genre" size="1">
  42.  
  43. <?php
  44. while($row=mysql_fetch_array($queryresult1,MYSQL_ASSOC)){
  45. echo"<option value='".$row['idGenre']."'>".$row['Nom_Genre']."</option>";
  46. }
  47. ?>
  48. </select>
  49. </p>
  50. <p>Type_Biologique
  51. <select name="Nom_Type" size="1" id="idType_Biologique">
  52.  
  53. <?php
  54. while($row=mysql_fetch_array($queryresult2,MYSQL_ASSOC)){
  55. echo"<option value='".$row['idType_Biologique']."'>".$row['Nom_Type']."</option>";
  56. }
  57. ?>
  58. </select>
  59. <p>Nom_Latin :
  60. <input name="Nom_Latin" type="text" size="50" maxlength="50">
  61. </p>
  62.  
  63. <p>Nom_Français :
  64. <input name="Nom_Français" type="text" size="50" maxlength="50">
  65. </p>
  66.  
  67. <p>Personne_Basionyme :
  68. <input name="Personne_Basionyme" type="text" size="50" maxlength ="50">
  69. </p>
  70.  
  71. </fieldset>
  72. <p class="titre">Description: </>
  73. <fieldset id="Description">
  74. <textarea name="Description" rows="5" cols="50"></textarea>
  75. </fieldset>
  76. <p id="bouton">
  77. <input type="submit" value="Ajouter Espèce_Végétale"/>
  78. </fieldset>
  79. <p id="bouton">
  80. <input type="reset" value="Annuler"/>
  81. </p>
  82.  
  83. <p>  </p>
  84. </form></p></td>
  85. </tr>



Fichier : ajouterespece.php

  1. <head>
  2. <title>page de saisie Especes_vegetales</title>
  3. <style type="text/css">
  4. body {
  5. background-color:#000;
  6. background-repeat: no-repeat;
  7. color: #000;
  8. background-color: #FFF8DC;
  9. background-position: center;
  10. }
  11. </style>
  12. </head>
  13. <tr>
  14. <td height="1000" valign="top" bgcolor="#FFF8DC">
  15. <h4>Systemes de Gestions des Especes <h4>
  16. <h1> résultat de l'enregistrement</h1>
  17. <p>
  18. <?php
  19. $link = mysql_connect('localhost', 'root', '');// connexion à la base de données
  20. if (! $link)
  21. {
  22. die ('<p>Impossible de se connecter: '. mysql_error().'</p>');
  23. }
  24. $db = mysql_select_db('mabase', $link) ;// selection de la base de données
  25. if(! $db){
  26. die ('<p>ne pourrait pas se lire la base de données: '. mysql_error().'</p>');
  27. }
  28.  
  29. $query="INSERT INTO espece_vegetale VALUES ('','$Nom_Latin',$Nom_Français','$Personne_Basionyme','$Description','$idType_Biologique','$idGenre')";
  30.  
  31. $queryresult=mysql_query($query) or die ('enregistrement a échoué');
  32. echo "espèce à été enregistré correctement";
  33.  
  34. mysql_close($link);// on ferme la connexion à la base
  35.  
  36. ?>
  37. </p></td>

j'ai comme résultat l'enregistrement à échoué, depuis je cherche je ne vois pas ce qui cloche
merci

Autres pages sur : alimenter table liee table via cle etrangere

a b L Programmation
9 Octobre 2012 08:12:59

salut,

Les clef étrangères sont des données comme les autres.

peut-tu nous données plus d'info ( et un peut code ) ?
a c 232 L Programmation
9 Octobre 2012 09:40:55

Salut,

J'éviterai d'utiliser un nom de variable avec un ç, je ne suis pas sûr que ce soit accepté... c'est certainement ce qui pose problème.

De plus, pour que ton code fonctionne, il faut que register_globals soit activé sur le serveur pour que les valeurs de $_POST soient directement mises dans des variables globales.

Et puis il faut faire des vérifications sur les valeurs aussi, on n'insère pas des données comme ça sans les vérifier (mysql_real_escape_string par exemple)
Contenus similaires
a c 232 L Programmation
9 Octobre 2012 11:33:10

a édité ce message
9 Octobre 2012 12:48:33

salut,
encore merci pour vos propositions, les deux fichiers php, ont été posté.aussi les deux clés étrangères qui sont dans ma table j'ai comme des champs avec listes deroulantes, lorsqu je selectionne qu qu j'inser ds la table, elle reste vide
a b L Programmation
9 Octobre 2012 18:09:15

Oups j'avais pas vue le reste du poste , foutu forum !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS