Comment retrouver tous les produits sélectionnés dans la B.D?
inabantu
Messages postés
2
Statut
Membre
-
tryan44 Messages postés 1288 Date d'inscription Statut Membre Dernière intervention -
tryan44 Messages postés 1288 Date d'inscription Statut Membre Dernière intervention -
Bonjour, comme le titre l'indique, j'aimerai savoir comment faire pour retrouver tous les produits sélectionnées dans la base de données. En effet j'ai conçu un formulaire à remplir pour effectuer une commande mais quand je fais une sélection de plusieurs produits, je constate que dans la base de données seul le dernier produit sélectionné apparaît.
Voici mon code:
<?php $titre="Réservation - Snack Bar Mon ami";
include("tete.php");
include("connexiondb.php");
if(isset($_SESSION['numeroid'])&& isset($_SESSION['motdepasse']) &&!empty($_SESSION['numeroid'])
&& !empty($_SESSION['motdepasse']))
{ }
else {
header('location:login_client.php');
}
?>
<div id="contenu" class="text2">
<h1>Réservation rapide</h1>
<?php
?>
<form method="post" action="">
<table width="50%" cellspacing="2" cellpadding="0" border="0" >
<tbody>
<tr>
<td>Date du jour </td>
<td> <input type="text" size="30" name="datedujour" value="<?php $date_du_jour=date("d-m-Y"); echo "$date_du_jour";?>"/> </td>
</tr>
Maintenez la touche Contrôle appuyée, pour sélectionner plusieurs produits.<br/>
<tr>
<td>Produits</td>
<td><select name="produits" size="" multiple="MULTIPLE" style="height:120px">
<?php
$re="SELECT * FROM produit ";
if(!$re)
{echo "Erreur de la Requette"; }
else{
$donnees=mysql_query($re);
while($result=mysql_fetch_object($donnees))
{
echo "<option value=\"$result->nom\"> $result->nom </option>";
}
} ?>
</select></td>
</tr>
<tr>
<td>Nombre de Personne</td>
<td><input type="textfield" size="30" name="nombredepersonne"/></td></tr>
<tr>
<td>Date de la réservation</td>
<td><input type="text" size="30"name="datereservation" value="<?php $date_du_jour=date("d-m-Y"); echo "$date_du_jour";?>"/></td>
</tr>
<tr>
<td>Heure de la réservation</td>
<td><input type="text" size="30"name="heurereservation"/></td>
</tr>
</tbody>
</table>
<p> <input type="submit" name="day" value="RESERVER"/> </p>
<?php
if(isset($_POST['day']))
{
if(!empty($_POST['datedujour'])&&!empty($_POST['produits'])&&!empty($_POST['nombredepersonne'])&&!empty($_POST['datereservation'])&&!empty($_POST['heurereservation']))
{echo $datedujour=$_POST['datedujour'];
$produits=$_POST['produits'];
$nombredepersonne=$_POST['nombredepersonne'];
$datereservation=$_POST['datereservation'];
$heurereservation=$_POST['heurereservation'];
$req='INSERT INTO reservation VALUES ("","'.$produits.'","'.$nombredepersonne.'", "'.$datereservation.'","'.$heurereservation.'", "'.$datedujour.'")';
if(mysql_query($req))
{
echo "<span class=\"enreg\">correctement enregistré</span>";
}
else{
echo "Erreur d'enregistrement";
}
}
else
{
echo "Veuillez remplir tous les champs";
}
}
?>
</form>
</div>
<?php include("pied.php")?>
Alors j'aimerais savoir ce que je devrais ajouter dans mon code concernant la sélection des produits ;depuis <td>Produits</td> pour que si j'appuie sur le bouton RESERVER je retrouve tous mes produits dans ma base de données?
Merci pour votre aide.
Voici mon code:
<?php $titre="Réservation - Snack Bar Mon ami";
include("tete.php");
include("connexiondb.php");
if(isset($_SESSION['numeroid'])&& isset($_SESSION['motdepasse']) &&!empty($_SESSION['numeroid'])
&& !empty($_SESSION['motdepasse']))
{ }
else {
header('location:login_client.php');
}
?>
<div id="contenu" class="text2">
<h1>Réservation rapide</h1>
<?php
?>
<form method="post" action="">
<table width="50%" cellspacing="2" cellpadding="0" border="0" >
<tbody>
<tr>
<td>Date du jour </td>
<td> <input type="text" size="30" name="datedujour" value="<?php $date_du_jour=date("d-m-Y"); echo "$date_du_jour";?>"/> </td>
</tr>
Maintenez la touche Contrôle appuyée, pour sélectionner plusieurs produits.<br/>
<tr>
<td>Produits</td>
<td><select name="produits" size="" multiple="MULTIPLE" style="height:120px">
<?php
$re="SELECT * FROM produit ";
if(!$re)
{echo "Erreur de la Requette"; }
else{
$donnees=mysql_query($re);
while($result=mysql_fetch_object($donnees))
{
echo "<option value=\"$result->nom\"> $result->nom </option>";
}
} ?>
</select></td>
</tr>
<tr>
<td>Nombre de Personne</td>
<td><input type="textfield" size="30" name="nombredepersonne"/></td></tr>
<tr>
<td>Date de la réservation</td>
<td><input type="text" size="30"name="datereservation" value="<?php $date_du_jour=date("d-m-Y"); echo "$date_du_jour";?>"/></td>
</tr>
<tr>
<td>Heure de la réservation</td>
<td><input type="text" size="30"name="heurereservation"/></td>
</tr>
</tbody>
</table>
<p> <input type="submit" name="day" value="RESERVER"/> </p>
<?php
if(isset($_POST['day']))
{
if(!empty($_POST['datedujour'])&&!empty($_POST['produits'])&&!empty($_POST['nombredepersonne'])&&!empty($_POST['datereservation'])&&!empty($_POST['heurereservation']))
{echo $datedujour=$_POST['datedujour'];
$produits=$_POST['produits'];
$nombredepersonne=$_POST['nombredepersonne'];
$datereservation=$_POST['datereservation'];
$heurereservation=$_POST['heurereservation'];
$req='INSERT INTO reservation VALUES ("","'.$produits.'","'.$nombredepersonne.'", "'.$datereservation.'","'.$heurereservation.'", "'.$datedujour.'")';
if(mysql_query($req))
{
echo "<span class=\"enreg\">correctement enregistré</span>";
}
else{
echo "Erreur d'enregistrement";
}
}
else
{
echo "Veuillez remplir tous les champs";
}
}
?>
</form>
</div>
<?php include("pied.php")?>
Alors j'aimerais savoir ce que je devrais ajouter dans mon code concernant la sélection des produits ;depuis <td>Produits</td> pour que si j'appuie sur le bouton RESERVER je retrouve tous mes produits dans ma base de données?
Merci pour votre aide.
A voir également:
- Comment retrouver tous les produits sélectionnés dans la B.D?
- Ryanair produits interdits en cabine - Guide
- Retrouver message supprimé whatsapp - Guide
- Retrouver une musique avec les notes - Guide
- Comment retrouver son code de telephone - Guide
- Cle de produits windows 8.1 - Guide
1 réponse
Salut,
Je ne sais pas si c'est la meilleurs solution mais à défaut vous pouvez vous en inspirer ...
Comme vous utilisez une sélection multiple il faut déclarer le nom du "select" comme un tableau en ajoutant une paire de crochet. Ensuite on utilise une boucle "for" pour construire une partie de la requête sur les champs visés par la sélection. Dans la variable "$requete" on supprime le dernier "AND" sans oublier l'espace avec la fonction "substr" puis on concatène le reste de la requête.
Dans cet exemple et si vous sélectionnez tout, vous obtenez le résultat suivant :
Je ne sais pas si c'est la meilleurs solution mais à défaut vous pouvez vous en inspirer ...
<form method="post" action=""> <select name="produits[]" size="" multiple="MULTIPLE"> <option value="1">1<option> <option value="2">2<option> <option value="3">3<option> </select> <input type="submit" name="ok"> </form> <?php if(isset($_POST["ok"])){ $produits = ''; for ($i=0;$i<count($_POST['produits']);$i++) { $produits .= 'champ = '.$_POST['produits'][$i].' AND '; } $requete = substr("SELECT * FROM table WHERE $produits", 0, -4)."ORDER BY id DESC"; echo $requete; } ?>
Comme vous utilisez une sélection multiple il faut déclarer le nom du "select" comme un tableau en ajoutant une paire de crochet. Ensuite on utilise une boucle "for" pour construire une partie de la requête sur les champs visés par la sélection. Dans la variable "$requete" on supprime le dernier "AND" sans oublier l'espace avec la fonction "substr" puis on concatène le reste de la requête.
Dans cet exemple et si vous sélectionnez tout, vous obtenez le résultat suivant :
SELECT * FROM table WHERE champ = 1 AND champ = 2 AND champ = 3 ORDER BY id DESC