Petite condition Mysql/php

Résolu/Fermé
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023 - 12 mai 2014 à 09:07
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 13 mai 2014 à 12:40
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 :

<?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:

3 réponses

Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
12 mai 2014 à 09:16
J'ai essayé un petit code comme ceci en dessous de mon

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.
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
12 mai 2014 à 20:38
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.
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
13 mai 2014 à 09:30
Comment jefait pour la clause not in ? jpeux rajouter un truc comme ça ? :

SELECT * FROM materiel WHERE id_mat NOT IN (SELECT DISTINCT id_mat FROM emplacement WHERE 1) 


mais je devrais le mettre ou ?
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
13 mai 2014 à 12:40
C'est exactement ça, sauf le WHERE 1 qui ne sert à rien et qui peut donc être enlever.
Tu mets donc cette requête pour le remplissage de ton select, ça empêchera d'afficher ceux déjà enregistré dans une salle.
0