Fixed
Bonjour
$_POST['categorie1'] n'existe pas : dans ton formulaire tu as commencer à 2 (j'ignore si c'est normal)
conseil : fais une boucle, car écrire 10 fois la même chose c'est pas très utile
EDIT: je viens de voir categorie1 mea-culpa
C'est pas très compliqué![]()
La partie formulaire deviens :
Code php : 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 <p>Vous pouvez emprunter jusqu a 10 objets (dont un maximum de 2 DVD et 3 CD), veuillez indiquer les objets que vous souhaitez reserver (Remplissez tous les champs):</p> <form method="POST" action="reserver.php" /> <table border="2"> <tr> <td><b>Emprunt n</b></td> <td><b>Categorie</b></td> <td><b>ID</b></td> <td><b>Date de retour prevue (aaaa/mm/jj)</b></td> </tr> <?php for($nbCategorie = 1; $nbCategorie<=10; $nbCategorie++) { ?> <tr> <td><?php echo $nbCategorie; ?></td> <td> <select name="categorie<?php echo $nbCategorie; ?>"> <option></option> <option>Livre</option> <option>CD</option> <option>DVD</option> </select></td> <td><input name="ID<?php echo $nbCategorie; ?>" type="text"/></td> <td><input name="date_retour<?php echo $nbCategorie; ?>" type="text"/></td> </tr> <?php } ?> </table> <input type="submit" value="Valider" />
Et la partie de récupération des infos :
Dans ces 2 codes, l'idée est la même : on fais une boucle qui va se répéter 10 fois, et au lieu d'afficher par exemple id1, id2 ... id10 ; tu remplace par id puis le compteur de boucle qui va aller de 1 à 10
Code php : 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 <?php // Si les variables existent, alors on execute les instructions for($nbCategorie = 1; $nbCategorie<=10; $nbCategorie++) { if (isset($_POST['ID'.$nbCategorie]) && isset($_POST['date_retour'.$nbCategorie]) && isset($_SESSION['NumAdhSession'])) { //Definition des variables $categorie=$_POST['categorie'.$nbCategorie]; $ID=$_POST['ID'.$nbCategorie]; $DatRet=$_POST['date_retour'$nbCategorie]; // Definition des requetes $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES ($numero, $ID, '$DatRet'])"; $requpdtlocation1="UPDATE locations SET qte_disp = qte_disp - 1 WHERE numlocation='$ID';"; //Execution des requetes mysql_query($reqlouer1) or die("erreur".mysql_error()); mysql_query($requpdtlocation1) or die("erreur".mysql_error()); //Confirmation echo "Votre reservation numero". $nbCategorie . " a bien ete enregistree"; } }
PS: apparemment tu n'utilise jamais le $_POST['categorieX'] ...
PS2: tu devrais utiliser th plutôt que td pour les titre de tes tableaux
Cela n'a peut être rien à voir mais je ne vois pas ou est défini $numero ?
Sinon essaie une concaténation comme ça :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES (".$numero.",".$ID.", '".$DatRet."')";
J'ai jamais confiance dans les variables évaluée ou non donc je préfère perso
Rebonjour,
Je rajouterai (pour ID1, car les autres, c'est la même chose) :
que je remplacerai par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES ($numero, $ID1, '$DatRet1'])"; $requpdtlocation1="UPDATE locations SET qte_disp = qte_disp - 1 WHERE numlocation='$ID1';";
Le "qte_disp = qte_disp - 1", je ne vois pas comment il pourrait fonctionner. Parce que je ne vois aucune variable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES ($numero, $ID1, '$DatRet1'))"; $requpdtlocation1="UPDATE locations SET ? WHERE numlocation=$ID1";
PS : En gras, ce qui me chagrine.
Edit : Et tu aurais pu mettre :
au lieu de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part isset($numero)Une erreur là aussi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part isset($_SESSION['NumAdhSession'])Tu as mal écrit le $_POST.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ID1=$POST_['ID1'];
Partager