PHP envoi de requête via input de type submit

Résolu
mac_m Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
mac_m Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, après avoir affiché une table de ma base de donnée mysql contenant une liste de livres et à coté de chaque ligne un bouton "réserver". Je souhaiterais pouvoir lorsque je clique sur le bouton, envoyer une requête pour pouvoir insérer dans le champ "loue_par" de la table "livres" le nom du membre connecté. Voici le code :

<?php //Connection avec la BDD.
mysql_connect("localhost", "root", "");
mysql_select_db("bibliotheque");
$query = "SELECT * FROM livres";
$reponse = mysql_query($query);
?>

<table border="3">
<tr>
<th>Titre</th>
<th>Auteur</th>
<th>Editeur</th>
<th>Commentaire</th>
<th>Catégories</th>
<th>Reservation</th>

</tr>
<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
while($donnees = mysql_fetch_array($reponse))
{
?>
<tr>
<td><?php echo $donnees['titre'];?></td>
<td><?php echo $donnees['auteur'];?></td>
<td><?php echo $donnees['editeur'];?></td>
<td><?php echo $donnees['commentaire'];?></td>
<td><?php echo $donnees['categorie'];?></td>
<td align="center"><input type="submit" name="reservation" value="Reserver"/></td>
</tr>
<?php
} //fin de la boucle
mysql_close(); //deconnection
?>

2 réponses

  1. Utilisateur anonyme
     
    Commence par verifier si le membre est connecter pour afficher le bouton

    un simple
    if (isset($membre)) {// affiche le bouton } else {// naffiche pas le bouton}

    rajoute un form (method="post") pour ton boutton et un
    <input type="hidden" value="<?php $donnees['titre'];?>" name="livre">
    puis pour le traitement
    tu fait un code genre
    <?php
    mysql_query(insert into livres loue_par=$membre livre=$_POST['livre']);
    

    je suis désoler pour le code sql je n'ais pas aprit cette metode mais jespere que tu comprend le principe

    cordialement H4ck3r210
    0
    1. mac_m Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1
       
      merci pour ton aide à la base le membre doit être connecté pour voir la liste des livres c'est déjà fait. J'ai ajouté les balises <form></form> pour mon bouton mais vu que je génère dynamiquement les boutons mon problème reste la syntaxe sql c.à.d. comment savoir sur quel bouton a t-on cliqué !!
      0
    2. Utilisateur anonyme
       
      C es pour ca le <input type="hidden" value="<?php $donnees['titre'];?>" name="livre"> si je clique sur le livre thebook on saura que le bouton cliqué
      est celui de thebook donc dans la bdd on enregistre quelle livre est louer par qui (mysql_query(insert into livres loue_par=$membre livre=$_POST['livre']);)
      0
    3. mac_m Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1
       
      voila j'ai utilisé le input de type hidden comme tu me l'a conseillé mais la je n'arrive qu'a réserver tous les livres et non un à la fois à cause de la boucle. J'ai du faire du name un tableau pour pouvoir changer la valeur. Le code donne ceci :

      <?php //Connection avec la BDD.
      mysql_connect("localhost", "root", "");
      mysql_select_db("bibliotheque");
      $query = "SELECT * FROM livres";
      $reponse = mysql_query($query);
      ?>

      <table border="3">
      <tr>
      <th>Titre</th>
      <th>Auteur</th>
      <th>Editeur</th>
      <th>Commentaire</th>
      <th>Catégories</th>
      <th>Reservation</th>

      </tr>
      <form action="liste_livre.php" method="post">
      <?php //On affiche les lignes du tableau une à une à l'aide d'une boucle

      while($donnees = mysql_fetch_array($reponse))
      {
      ?>
      <tr>
      <td><?php echo $donnees['titre'];?></td>
      <td><?php echo $donnees['auteur'];?></td>
      <td><?php echo $donnees['editeur'];?></td>
      <td><?php echo $donnees['commentaire'];?></td>
      <td><?php echo $donnees['categorie'];?></td>
      <td align="center">


      <input type="hidden" value="<?php echo $donnees['id'];?>" name="livre[]">
      <input type="submit" name="reservation" value="Reserver"/>

      </td>
      </tr>
      <?php
      } //fin de la boucle

      ?>
      </form>
      </table>
      <?php
      if(isset($_REQUEST['reservation'])){

      for ($i=0;$i<sizeof($_REQUEST['livre']);$i++){
      $sql="update livres set loue_par='".$login."' where id=".$_REQUEST['livre'][$i]."";
      mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
      }
      }
      mysql_close(); //deconnection de mysql
      ?>
      0
  2. Utilisateur anonyme
     
    jai ajouter quelque modification au code pour que sa marche
    supposon que la page s apelle reserve.php
    <?php //Connection avec la BDD.
    mysql_connect("localhost", "root", "");
    mysql_select_db("bibliotheque");
    $query = "SELECT * FROM livres";
    $reponse = mysql_query($query);
    ?>

    <table border="3">
    <tr>
    <th>Titre</th>
    <th>Auteur</th>
    <th>Editeur</th>
    <th>Commentaire</th>
    <th>Catégories</th>
    <th>Reservation</th>

    </tr>

    <?php //On affiche les lignes du tableau une à une à l'aide d'une boucle

    while($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <tr>
    <td><?php echo $donnees['titre'];?></td>
    <td><?php echo $donnees['auteur'];?></td>
    <td><?php echo $donnees['editeur'];?></td>
    <td><?php echo $donnees['commentaire'];?></td>
    <td><?php echo $donnees['categorie'];?></td>
    <td align="center">

    <form method="post" action="./reserve.php"
    <input type="hidden" value="<?php echo $donnees['id'];?>" name="livre">
    <input type="submit" name="reservation" value="Reserver"/>
    </form>
    </td>
    </tr>
    <?php
    } //fin de la boucle

    ?>

    </table>
    <?php
    if(isset($_POST['livre']))
    {

    /* met une requete sql (insert louer_par=$membre livre=$_POST['livre'] into livres */

    }
    }
    mysql_close(); //deconnection de mysql
    ?>
    Never trust user input !!!!
    0
    1. mac_m Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1
       
      ça y est ça marche merci beaucoup pour ton aide "h4ck3r210" !!
      0