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 :

récupérer id d'une table dans un formulaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Par défaut récupérer id d'une table dans un formulaire
    Bonjour à tous!

    Je sollicite votre aide car je suis dans une impasse... pas moyen de trouver seule!!!

    Donc, j'ai:

    - ma page principale avec un tableau qui référence les 20 derniers enregistrements de ma table 'archivage' de ma base de données

    - dans ce tableau je n'affiche que 5 champs de ma table 'archivage' :

    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
     
    $requete = "SELECT * FROM `archivage` ORDER BY id DESC limit 0,20;" ;
    //lancement de la requete et message d'erreur si la requete ne passe pas correctement
    $result = mysql_query($requete,$base) or die ('Erreur SQL !<br />'.$requete.'<br />'.mysql_error());
    //recuperation du resultat  
    	while ($der = mysql_fetch_array( $result ))
    	{
    	//affichage
    	echo ("
    	<TR id='normal'>					
                 <TD width='20%' align='center'><a id='lien' href='maj.php'>".$der['code_caisse']."</a></TD>
    	<TD width='20%' align='center'>".$der['mois']."</TD>
    	<TD width='20%' align='center'>".$der['date_archivage']."</TD>
    	<TD width='50%' align='center'>".$der['DON']."</TD>
    	<TD width='10%' align='center'>".$der['copie']."</TD>
    	</TR>
    	");
    	}
    	//libèration de l'espace mémoire alloué pour cette interrogation de la base  
    	mysql_free_result ($result);
    	//affichage du résultat
    	echo $der;
    - je souhaite , via le lien sur le 'code_caisse', récupérer dans ma page maj.php la totalités des informations de ma ligne. Sachant que 'code_caisse' n'est pas une clé primaire.

    Je pense qu'il faudrait que je récupère mon id (clé primaire) qui correspond à la ligne de ma table choisi avec le lien. comment je peux récupérer ce champ en post dans mon formulaire?

    merci d'avance à ceux qui pourront me donner un coup de pouce!!!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut
    Si tu veux récupérer tes donnés en POST il faut que tu passes par un formulaire.
    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form method=\"POST\" action=\"maj.php\">
    <input type=\"submit\" value=\"".$der['code_caisse']."\" />
    <input type=\"hidden\" value=\"".$der['id']."\" />
    </form>
    à la place de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a id='lien' href='maj.php'>".$der['code_caisse']."</a>
    Bien sûr qu'il y ait un champ id dans ta table au départ.

    Sinon une autre methode avec une variable get

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href=\"maj.php?id=".$der['id']."\">".$der['code_caisse']."</a>
    Mais avec ça tu as l'id écrit dans l'URL donc pense bien à protéger après avec mysql_real_escape_string() pour éviter toute injection SQL.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Par défaut
    et ouais... c'était tout... bête...!!!
    surtout que j'ai trouvé hier en mangeant!!!

    donc je passe ma variable en get, tout simplement!!!
    et ça fonctionne parafitement.
    merci Psymon!!!

  4. #4
    Membre confirmé Avatar de shams
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 210
    Par défaut
    salut!

    j'ai un peu le même souci, mais je voulais pas passer par des variables dans l'adresse url.

    En fait, je fais afficher ma table sur une page. C'est une table qui contient deux champs : un cadeau, et un nom. L'idée c'est d'afficher une liste de cadeau. Et j'indique si quelqu'un l'a déjà pris ou pas. Si personne ne l'a pris, je veux mettre un boutton "prendre" qui renvoie sur une page demandant le nom de la personne!
    Pour ca, je voudrais récupérer l'id de mon entrée et la passer a ma page prendre.php... Mais j'y arrive pô..

    mon code : (je suis débutant, alors ne criez pas si c'est n'importe quoi!)
    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
    <?PHP
     
    $db = mysql_connect('localhost', 'login', 'pass'); 
    mysql_select_db('base',$db); 
     
    $sql = "SELECT * FROM bebe"; 
    $req = mysql_query($sql) or die('Erreur SQL !
    '.$sql.'
    '.mysql_error()); 
    while($data = mysql_fetch_array($req))
    { 
    ?> 
    	<p>
        <strong>le cadeau est :</strong>  <?php echo $data['cado']; ?>  <br/>
    	<?php if ($data['nom'] != NULL)  
    	{
    	?>
       		 il a été pris par  <?php echo $data['nom']; ?>
    	<?php
    	}
    	else
    	{
    	?>
    		<form action="ajout/prendre.php" method="POST">
    		<input type="hidden" name="id" value=<?????? >
    		<input type="submit" value="prendre ce cadeau!">
    		</form>
    	<?php
    	}
    	?>
    	</p>
    <?php
    } 
    mysql_close();
    ?>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut
    En fait ce qu'il faut c'est ta clé primaire de ta table (ce qui rend l'enreggistrement unique). La plupart du temps on met champ id qui s'auto-incrémente. Si ton champ cado est unique alors tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="id" value="<?php echo $don['cado'];?>" />
    Et après dans ta page de traitement tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
       if(isset($_POST['id']))
       {
         $sql = "UPDATE bebe SET nom='...' WHERE cado='".$_POST['cado']."'"; 
         mysql_query($sql) or die(mysql_error());
       }
    ?>
    Si cado n'est pas ta clé primaire prend autre chose!

  6. #6
    Membre confirmé Avatar de shams
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 210
    Par défaut
    ok merci beaucoup je vais essayer avec une clé primaire id qui s'auto incremente. Je te tiens au courant !

    EDIT : super! ca fonctionne!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/09/2006, 12h33
  2. Afficher une table dans un formulaire
    Par noob_vba dans le forum IHM
    Réponses: 8
    Dernier message: 20/06/2006, 16h54
  3. Choisir à partir d'une table dans un formulaire
    Par couguar dans le forum IHM
    Réponses: 28
    Dernier message: 06/06/2006, 08h47
  4. [Access 2003]Mettre une table dans un formulaire?
    Par steeves5 dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2006, 13h30
  5. Réponses: 2
    Dernier message: 16/02/2006, 09h24

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