Petite condition Mysql/php
Résolu
Ibilolz
Messages postés
130
Date d'inscription
Statut
Membre
Dernière intervention
-
Nhay Messages postés 838 Date d'inscription Statut Membre Dernière intervention -
Nhay Messages postés 838 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai une page d'inventaire pour placer du matériel dans une salle. J'ai un bouton déroulant pour choisir le matériel et un bouton déroulant pour choisir les salles. Quand je clique sur ajouter l'ajout se fait dans ma table emplacement.
Boutons déroulants :
J'ai ensuite une date de placement à rentrer et mon code php pour l'ajout :
Ce que je voudrais c'est qu'un matériel ne puisse pas être mis dans deux salles différentes ou voir mieux que lorsque qu'il est dans ma table emplacement il ne soit plus en choix dans le select. Si quelqu'un pouvait me montrer le code php qu'il me manque :/ .
Merci d'avance
Boutons déroulants :
<?php include 'fonctions.connect.php'; $id_salle = "SELECT num_salle FROM Salle"; $id_mat = "SELECT id_mat FROM Materiel"; $res = mysql_query($id_salle); $res2 = mysql_query($id_mat); ?> <br></br> <div> <form action="" method="post" id=test> <select name="test1" id="test1"> <option value='-1'>----Choisissez le numéro d'une salle -----</option> <?php while ($row = mysql_fetch_array($res)) { $salle = $row['num_salle']; echo "<option value='$salle'>$salle</option>"; } ?> </select> <br></br> <select name="test2" id="test2"> <option value='-1'>----Choisissez l'ID d'un matériel -----</option> <?php while ($row2 = mysql_fetch_array($res2)) { $mat = $row2['id_mat']; echo "<option value='$mat'>$mat</option>"; } ?> </select> </div> <br></br>
J'ai ensuite une date de placement à rentrer et mon code php pour l'ajout :
Date de placement : <input type="text" name="date" size=10 <br></br> <br></br><div> <!--------------- PHP ajout -----------> <div> <input type="submit", name="submit" Value="Ajouter"> <?php include 'fonctions.connect.php'; if (isset($_POST['test1'], $_POST['test2'], $_POST['date'])) { $test1 = $_POST['test1']; $test2 = $_POST['test2']; $date = $_POST['date']; $sql = "INSERT INTO emplacement (num_salle,id_mat,date) VALUES ('$test1','$test2','$date' )"; mysql_query($sql) ; } ?> </form></div> <br></br> <br></br>
Ce que je voudrais c'est qu'un matériel ne puisse pas être mis dans deux salles différentes ou voir mieux que lorsque qu'il est dans ma table emplacement il ne soit plus en choix dans le select. Si quelqu'un pouvait me montrer le code php qu'il me manque :/ .
Merci d'avance
A voir également:
- Petite condition Mysql/php
- Excel cellule couleur si condition texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
3 réponses
J'ai essayé un petit code comme ceci en dessous de mon
mais erreur.
if (isset($_POST['test1'], $_POST['test2'], $_POST['date']))
$test = "select * from emplacement where id_mat = '$test2'" if ($test == 1){ echo'Insersion pas possible' } else { $sql = "INSERT INTO emplacement (num_salle,id_mat,date) VALUES ('$test1','$test2','$date' )"; mysql_query($sql) ; }
mais erreur.
Bonjour,
Dans ton IF, tu ne peut pas tester ta valeurs $test comme cela, tu n'a même pas exécuté ta requête. Fait-le et teste ensuite via un mysql_num_rows.
Pour ton Select qui n'affiche pas ceux déjà enregistré c'est possible, il te suffit de rajouter une clausse not in (select ...) où tu récupère la liste des id dans le deuxième select.
Les deux sont complémentaires, il faut mieux faire les deux qu'un seul.
Dans ton IF, tu ne peut pas tester ta valeurs $test comme cela, tu n'a même pas exécuté ta requête. Fait-le et teste ensuite via un mysql_num_rows.
Pour ton Select qui n'affiche pas ceux déjà enregistré c'est possible, il te suffit de rajouter une clausse not in (select ...) où tu récupère la liste des id dans le deuxième select.
Les deux sont complémentaires, il faut mieux faire les deux qu'un seul.