Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2767 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  récup d'1 valeur php d'1 table pour autre table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

récup d'1 valeur php d'1 table pour autre table

n°1692250
t671
Posté le 25-02-2008 à 17:55:29  profilanswer
 

Bonjour,  
 
Suite à l'affichage partiel d'un enregistrement d'une table A, je voudrais récupérer l'id de cet enregistrement pour faire un lien sur un enregistrement d'une autre table.  
 
Mais là, j'y arrive pas, et je demande votre aide.  
 
 
1) J’affiche un résultat, suite à une sélection via un menu, de la table A. Ce résultat se compose des champs date_reco, famille et msg_reco. Chaque résultat possible de la table est composé d’un champ id_reco qui lui est propre. Et je le récupère ici .....
 

Code :
  1. <?php
  2. // information pour la connection à le DB  
  3. ............................
  4. $id_reco = $_GET['id_reco'];
  5. echo "$id_reco";
  6. // connection à la DB  
  7. $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
  8. mysql_select_db($db) or die ('Erreur :'.mysql_error());
  9. //sélection de l'enregistrement  
  10. $select = "SELECT * FROM reconstitutions where id_reco='$id_reco'";
  11. $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  12. {
  13. //affichage des résultats dans un tableau  
  14. while($row = mysql_fetch_array($result)) {
  15. echo '<table bgcolor="#FFFFFF" width="900">';
  16. echo '<td bgcolor="#669999" width="100"><center>'.$row['date_reco'].'</center></td>';
  17. echo '<td bgcolor="#669999" width="700"><center>Famille :    <b>'.strtoupper($row['famille']).'</b></center>­</td></tr>';
  18. echo '<tr><td colspan=2 bgcolor="#CCCCCC" width="800">'.nl2br($row['msg_reco']).'</td></tr>';
  19. echo '</table><p>';
  20. }
  21. }
  22. // on libère le résultat  
  23. mysql_free_result($result);
  24. mysql_close(); // on ferme la connexion  
  25. ?>


 
2) Un lien sur la page résultat me mène à saisir un commentaire html sur ce résultat (là, je perd l'id_reco, et je ne sais pas comment faire pour le garder et le passer au script suivant qui est add.php
 

Code :
  1. <form method="POST" action="add.php" value="envoyer" name="soumettre">
  2. Commentaire : <textarea cols="65" name="message" id="Message" rows="8" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);"></textarea><p>
  3. <input type="submit" name="preview" value="Valider"></form></div>
  4. </body></html>


 
3) Ce commentaire va alimenter la table B (add.php). Chaque enregistrement de cette table B est composé d’un champs "id_reco_com" qui doit être = au champ id_reco de la table A. Il peut y avoir plusieurs champs "id_reco_com" avec la même valeur, si plusieurs enregistrements de la table B font référence au même enregistrement de la table A. Et je ne sais pas comment retrouver mon id_reco de la table A pour le copier ds la table B !!!
 

Code :
  1. <?php
  2. // information pour la connection à le DB  
  3. ............................
  4. {
  5. // récupération des données du formulaires  
  6. $nom = $_POST['nom'];
  7. $mail = $_POST['mail'];
  8. $message = $_POST['message'];
  9. $id_reco = $_GET['id_reco'];
  10. //enregistrement dans la table  
  11. $jour=date("d" );
  12. $mois=date("m" );
  13. $annee=date("Y" );
  14. $date = "$jour/$mois/$annee";
  15. // on écrit la requête sql  
  16. $sql = "INSERT INTO com_reconstitution(commentaire, date_com, nom_com, email_com, id_reco_com) VALUES('$chaine', '$date', '$nom', '$mail', '$id_reco')";
  17. // on insère les informations du formulaire dans la table  
  18. mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());
  19. mysql_close(); // on ferme la connexion  
  20. }
  21. header("Location: menu.php" );
  22. exit;
  23. ?>


 
Voilà !!!!! Merci pour votre aide ....
 
 
 

mood
Publicité
Posté le 25-02-2008 à 17:55:29  profilanswer
 

n°1692268
ZeBix
edit &gt; preview
Posté le 25-02-2008 à 18:10:45  profilanswer
 

Heu je ne suis pas sûr de comprendre mais ne serait-ce pas de ça dont tu as besoin :
 
mysql_insert_id()
 
?


Message édité par ZeBix le 25-02-2008 à 18:11:02
n°1692272
dwogsi
Défaillance cérébrale...
Posté le 25-02-2008 à 18:14:14  profilanswer
 

Moi je vois pas de lien dans la page de résultats qui conduise vers add.php...
 
Mais si j'ai bien compris, tu voudrais que add.php reçoive l'id récupéré en base par un autre script au moment ou l'utilisateur clique sur un lien.
 
Dans ce cas, c'est simple et ça fait parti des bases, suffit de faire un lien de cette forme : add.php?id=1
Dans add.php tu recevra cet id avec la variable $_GET['id']


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1692283
t671
Posté le 25-02-2008 à 18:32:43  profilanswer
 

Je comprends que ça peut être un peu flou !!! J'y perd moi-même les pédales !
 
Au point 1, j'affiche le résultat d'une requête, et je peux récupérer tous les champs de l'enregistrement "a" de la table A.
Au point 2, j'affiche une page html où je saisi un commentaire dans la table B concernant l'enregistrement "a".
Au point 3, j'écris l'enregistrement dans la table B. Cet enregistrement comporte un champs id_reco_com qui est égal au champs id_reco de la table A.
Et c'est ce champs id_reco que je n'arrive pas à passer de script en script pour l'incrire dans la table B .....


Message édité par t671 le 25-02-2008 à 18:33:03
n°1692284
dwogsi
Défaillance cérébrale...
Posté le 25-02-2008 à 18:34:14  profilanswer
 

Bah... je viens de te donner la solution!
Edit : C'est bien de connaître le protocole utilisé et les fonctionnalités associées offertes par le langage, ça permet de pas poser des questions bêtes.


Message édité par dwogsi le 25-02-2008 à 18:35:16

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1692301
t671
Posté le 25-02-2008 à 19:14:13  profilanswer
 

Et tu peux m'aider pour écrire le lien add.php?id=1. Je ne suis pastrès balaise en php !!!!!  :ange:  
 
Et dans mon script add.php, j'ai déjà des $_POST. C'est pas gênant si je rajoute un $_GET ?
 
Merci

n°1692304
dwogsi
Défaillance cérébrale...
Posté le 25-02-2008 à 19:30:15  profilanswer
 

Code :
  1. echo '<a href="add.php?id=',$id_reco,'">Foo</a>';

Ya rien de compliqué...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1692619
t671
Posté le 26-02-2008 à 10:40:56  profilanswer
 

Ben j'y arrive pô !!!!!! :cry:  
 
Je n'arrive toujours pas à récupérer ma valeur $id_reco que je perd dans la script html précédent "commentaire.htm" ......  :(  
 
Faut que je trouve une autre solution ........

n°1692700
dwogsi
Défaillance cérébrale...
Posté le 26-02-2008 à 12:24:02  profilanswer
 

Bon allez, on y va pour le principe :
 
Tu récupère à un moment donné un id dans ta base de données.
Ton but est de retrouver cet id quelques pages plus loin? Et bien pour cela il faudra le transmettre de pages en pages.
 
Exemple :
 

Code :
  1. <?php
  2. $query = mysql_query('SELECT id, ...');
  3. while($data = mysql_fetch_assoc($query))
  4.  echo '<a href="add.php?id=',$data['id'],'">Le texte de ton lien</a>';
  5. ?>


 
Ce code (incomplet :o) te donnera une liste de liens. Un lien pour chaque ligne renvoyée par ta requête. Lorsque ton visiteur clique sur l'un de ces liens, il est envoyé sur la page add.php. De plus, add.php reçoit en GET l'id correspondant au lien cliqué via $_GET['id']. Ainsi, dans add.php, si tu dois encore envoyer le visiteur vers une autre page qui devra elle aussi connaître l'id choisit, tu devra de la même manière lui transmettre l'id. Tu peux donc avoir quelque chose comme ça :
 

Code :
  1. <?php
  2. echo '<a href="suivante.php?id=',$_GET['id'],'">Texte du lien</a>';
  3. ?>


 
Ainsi lorsque le visiteur clique sur ce lien, il est envoyé sur suivante.php. Suivante.php recevra, comme add.php, l'id en GET dans la variable $_GET['id'].
Et ainsi de suite...
 
Attention quand même, tu parle de page .html, il est probable que ton serveur n'interprète pas le php dans des fichiers portant cette extension.
 
Voilà, je sais pas quoi te dire de plus...
Si tu n'y arrive toujours pas / ne comprends pas, il te faut un bon tuto sur les base du HTTP et du PHP.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1693609
t671
Posté le 27-02-2008 à 14:42:25  profilanswer
 

Merci dwogsi ...........c'est ok !!!!!  :D  
 
A +
 

mood
Publicité
Posté le 27-02-2008 à 14:42:25  profilanswer
 

n°1694476
t671
Posté le 28-02-2008 à 16:32:35  profilanswer
 

Salut dwogsi (et les autres),
 
J'ai encore un p'titproblème que je n'arrive pas à résoudre, malgré tes derniers commentaires .....
Mon "add.php" récupère, du script précédent, des valeurs d'un formulaire et les inscrit ds la bd. Jusque là c'est ok !!!
Mais je veux encore passer la valeur id_reco de add.php vers les script suivant result_commentaire.php !!! Et j'y arrive pas !!!!!  :pt1cable:  
 
Mon script add.php (l'ajout dans la base est ok)
 

Code :
  1. <?php
  2. // information pour la connection à le DB
  3. ...............................
  4.     {
  5. // récupération des données du formulaires commentaire.htm
  6. $nom = $_POST['nom'];
  7. $mail = $_POST['mail'];
  8. $message = $_POST['message'];
  9. $id_reco = $_POST['id_reco'];
  10. //enregistrement dans la table
  11. $jour=date("d" );
  12. $mois=date("m" );
  13. $annee=date("Y" );
  14. $date = "$jour/$mois/$annee";
  15.     // on écrit la requête sql  
  16.     $sql = "INSERT INTO com_reconstitution(commentaire, date_com, nom_com, email_com, id_reco_com) VALUES('$chaine', '$date', '$nom', '$mail', '$id_reco')";
  17.     // on insère les informations du formulaire dans la table  
  18.     mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());
  19.     mysql_close();  // on ferme la connexion  
  20.     }
  21.     header("Location: result_commentaire.php" );
  22. ?>
  23. <html>
  24. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset">
  25. <link rel="stylesheet" type="text/css">
  26. <title>Ajout ds la base et passage de id_reco à result_commentaire.php</title>
  27. </head>
  28. <body>
  29. <form method="POST" action="result_commentaire.php" value="envoyer" name="soumettre">
  30. <input type="hidden" name="id_reco" id="id_reco" value="<?php echo $_GET['id_reco']; ?>"></form>
  31. </body></html>


 
Mon script result_commentaire.php (je n'arrive pas à récupérer ma valeur id_reco)
 

Code :
  1. <?php
  2. // information pour la connection à le DB
  3. .....................................
  4. $id_reco = $_POST['id_reco'];
  5. echo "ID ='$id_reco' ";
  6. // connection à la DB
  7. $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
  8. mysql_select_db($db) or die ('Erreur de connexion à la base de donnée:'.mysql_error());
  9. //sélection de l'enregistrement  
  10. $select = "SELECT * FROM reconstitutions where id_reco='$id_reco'";
  11. $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  12. {
  13.         //affichage du résultat dans un tableau
  14.     while($row = mysql_fetch_array($result)) {
  15. echo '<h2><center>La famille recomposée</center></h2>';
  16.         echo '<table bgcolor="#FFFFFF" width="900">';
  17. echo '<td bgcolor="#669999" width="100"><center>'.$row['date_reco'].'</center></td>';
  18. echo '<td bgcolor="#669999" width="700"><center>Famille :&nbsp;&nbsp;&nbsp;&nbsp;<b>'.strtoupper($row['famille']).'</b></center></td></tr>';
  19.         echo '<tr><td colspan=2 bgcolor="#CCCCCC" width="800">'.nl2br($row['msg_reco']).'</td></tr>';
  20.         echo '</table><p>';
  21. echo '<h4><center>Votre commentaire</center></h4>';
  22.     }
  23. }
  24. //sélection du dernier commentaire en relation avec la reconstitution
  25. $select2 = "SELECT * FROM com_reconstitution WHERE id_reco_com='$id_reco' order by id_com desc limit 1";
  26. $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
  27. {
  28.         //affichage du résultat dans un tableau
  29.     while($row = mysql_fetch_array($result2)) {
  30.         echo '<table bgcolor="#FFFFFF" width="900">';
  31. echo '<td bgcolor="#669999" width="100"><center>'.$row['date_com'].'</center></td>';
  32. echo '<td bgcolor="#669999" width="100"><center>'.$row['email_com'].'</center></td>';
  33. echo '<td bgcolor="#669999" width="100"><center>'.$row['nom_com'].'</center></td>';
  34.     echo '<tr><td colspan=3 bgcolor="#CCCCCC" width="800">'.nl2br($row['commentaire']).'</td></tr>';
  35.     echo '</table></center><p>';
  36. echo '<h3><a href=result_commentaire_famille.php>Voir tous les commentaires pour cette famille</a></h3>';
  37.     }
  38. }
  39. // on libère le résultat
  40. mysql_free_result($result);
  41. mysql_free_result($result2);
  42. mysql_close();  // on ferme la connexion
  43. ?>


 
Pouvez-vous m'aider ?
 
Merci

n°1694480
dwogsi
Défaillance cérébrale...
Posté le 28-02-2008 à 16:40:40  profilanswer
 

Tu fais un formulaire sans bouton de validation, il ne va pas se valider tout seul?!


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1694485
babasss
Posté le 28-02-2008 à 16:44:21  profilanswer
 

Euh, ca sert à quoi de mettre du html avec un formulaire alors qu'avant tu fais : header("Location: result_commentaire.php" );

 

Moi je mettrais : header("Location: result_commentaire.php?id=$id_reco" ); et je dégagerais le code HTML (car j'en vois pas l'intérêt) et sur le scipt suivant (result_commentaire.php) tu récupères id_reco avec un $_GET


Message édité par babasss le 28-02-2008 à 16:44:33

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1694505
t671
Posté le 28-02-2008 à 17:06:25  profilanswer
 

Bon ! C'est vrai, je n'ai pas besoin du html, car add.php n'est pas un formulaire, mais c'est le script qui écrit ds la base.
 
J'ai donc supprimer le html dans add.php, mis "header("Location: result_commentaire.php?id=$id_reco" );" commeme l'a consillé babasss, et fait un $_GET dans resut_commentaire.php, mais le résultat est toujours pareil .....  :pt1cable:

n°1694509
t671
Posté le 28-02-2008 à 17:09:05  profilanswer
 

C'set bon j'ai réussiiiiiiiiiiiii .................  :hello:   :D

n°1694548
babasss
Posté le 28-02-2008 à 17:41:11  profilanswer
 

Et c'était quoi le pb ?


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1694550
t671
Posté le 28-02-2008 à 17:43:57  profilanswer
 

Ben non !!! Ca marche pas ............ j'me suis emballé trop vite !!!!!

n°1694580
t671
Posté le 28-02-2008 à 18:17:25  profilanswer
 

Je désespère .................
 
Je vous remet mes codes, si vous pouvez m'aider ......
 

Code :
  1. <?php
  2. $host =
  3. $user =
  4. $pass =
  5. $db =
  6. // connection à la DB
  7. $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
  8. mysql_select_db($db) or die ('Erreur :'.mysql_error());
  9. // récupération des données du formulaires commentaire.htm
  10. $nom = $_POST['nom'];
  11. $mail = $_POST['mail'];
  12. $message = $_POST['message'];
  13. $id_reco = $_POST['id_reco'];
  14. //enregistrement dans la table
  15. $jour=date("d" );
  16. $mois=date("m" );
  17. $annee=date("Y" );
  18. $date = "$jour/$mois/$annee";
  19.     // on écrit la requête sql  
  20.     $sql = "INSERT INTO com_reconstitution(commentaire, date_com, nom_com, email_com, id_reco_com) VALUES('$chaine', '$date', '$nom', '$mail', '$id_reco')";
  21.     // on insère les informations du formulaire dans la table  
  22.     mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());
  23.     mysql_close();  // on ferme la connexion  
  24.  
  25.     header("Location: result_commentaire.php?id=$id_reco" );
  26. exit;
  27. ?>


 
et result_commentaire
 

Code :
  1. <?php
  2. $host =
  3. $user =
  4. $pass =
  5. $db =
  6. $id_reco = $_GET['id_reco'];
  7. //echo "ID ='$id_reco' ";
  8. // connection à la DB
  9. $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
  10. mysql_select_db($db) or die ('Erreur de connexion à la base de donnée:'.mysql_error());
  11. //sélection de l'enregistrement  
  12. $select = "SELECT * FROM reconstitutions where id_reco='$id_reco'";
  13. $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  14. {
  15.         //affichage du résultat dans un tableau
  16.     while($row = mysql_fetch_array($result)) {
  17. echo '<h2><center>La famille recomposée</center></h2>';
  18.         echo '<table bgcolor="#FFFFFF" width="900">';
  19. echo '<td bgcolor="#669999" width="100"><center>'.$row['date_reco'].'</center></td>';
  20. echo '<td bgcolor="#669999" width="700"><center>Famille :&nbsp;&nbsp;&nbsp;&nbsp;<b>'.strtoupper($row['famille']).'</b></center></td></tr>';
  21.         echo '<tr><td colspan=2 bgcolor="#CCCCCC" width="800">'.nl2br($row['msg_reco']).'</td></tr>';
  22.         echo '</table><p>';
  23. echo '<h4><center>Votre commentaire</center></h4>';
  24.     }
  25. }
  26. //sélection du commentaire
  27. $select2 = "SELECT * FROM com_reconstitution WHERE id_reco_com='$id_reco' order by id_com desc limit 1";
  28. $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
  29. {
  30.         //affichage du résultat dans un tableau
  31.     while($row = mysql_fetch_array($result2)) {
  32.         echo '<table bgcolor="#FFFFFF" width="900">';
  33. echo '<td bgcolor="#669999" width="100"><center>'.$row['date_com'].'</center></td>';
  34. echo '<td bgcolor="#669999" width="100"><center>'.$row['email_com'].'</center></td>';
  35. echo '<td bgcolor="#669999" width="100"><center>'.$row['nom_com'].'</center></td>';
  36.     echo '<tr><td colspan=3 bgcolor="#CCCCCC" width="800">'.nl2br($row['commentaire']).'</td></tr>';
  37.     echo '</table></center><p>';
  38. echo '<h3><a href=result_commentaire_famille.php>Voir tous les commentaires pour cette famille</a></h3>';
  39.     }
  40. }
  41. // on libère le résultat
  42. mysql_free_result($result);
  43. mysql_free_result($result2);
  44. mysql_close();  // on ferme la connexion
  45. ?>
  46. </center>
  47. </body>
  48. </html>


 
Merci pour le coup de main  :heink:  

n°1694584
t671
Posté le 28-02-2008 à 18:20:59  profilanswer
 

J'ai trouvé mon erreur
 
ds add.phph, j'écris header("Location: result_commentaire.php?id=$id_reco" ); à la place de header("Location: result_commentaire.php?id_reco=$id_reco" );
 
 :bounce:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  récup d'1 valeur php d'1 table pour autre table

 

Sujets relatifs
Formulaire : tester si la valeur rentrée est entièreplusieurs jointures sur une meme table ?
[MySQL] Problème avec Jointure ( et plusieurs COUNT sur même table)C# : problème avec retour de valeur (return int)
Ameioration code, de saisi d'un fomulair et insertion des une tableImporter table externe avec sequence dans une base de données
Formulaire : Récupérer valeur d'un input dont le nom est variableProbleme Checkbutton et recuperation valeur
Actualiser une iframe lors de l'ecriture sur dans la table[python] valeur de retour d'un programme
Plus de sujets relatifs à : récup d'1 valeur php d'1 table pour autre table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR