PHP envoi de requête via input de type submit

Résolu/Fermé
mac_m Messages postés 19 Date d'inscription vendredi 29 juin 2012 Statut Membre Dernière intervention 21 septembre 2015 - 29 juin 2012 à 03:37
mac_m Messages postés 19 Date d'inscription vendredi 29 juin 2012 Statut Membre Dernière intervention 21 septembre 2015 - 2 juil. 2012 à 01:41
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
?>
A voir également:

2 réponses

Utilisateur anonyme
29 juin 2012 à 03:57
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
mac_m Messages postés 19 Date d'inscription vendredi 29 juin 2012 Statut Membre Dernière intervention 21 septembre 2015 1
29 juin 2012 à 04:59
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
Utilisateur anonyme
29 juin 2012 à 05:56
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
mac_m Messages postés 19 Date d'inscription vendredi 29 juin 2012 Statut Membre Dernière intervention 21 septembre 2015 1
30 juin 2012 à 04:45
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
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
mac_m Messages postés 19 Date d'inscription vendredi 29 juin 2012 Statut Membre Dernière intervention 21 septembre 2015 1
2 juil. 2012 à 01:41
ça y est ça marche merci beaucoup pour ton aide "h4ck3r210" !!
0