Select multiple dans un insert
Imelda24
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Mon probleme est celui-ci :
dans ma base g une table materiel qui contient 3 type de materiel et une autre table mainte qui a un champs matériel et une cle étrangere id_materiel de la table matériel, quand j'insere dans la table mainte si dans le champs matériel g ordi j'aimerais que dans le champs id_materiel de la table mainte qu'il mettre l'id qui correspond a l'ordi dans la table materiel dans le champs id_materiel . et ainsi de suite je c comment faire pour un type mais pas pour les 3 je pense que je dois mettre une boucle mais j'arrive pas a le resoudre. svp g besoin de votre aide.
et pour le l'insertion
Mon probleme est celui-ci :
dans ma base g une table materiel qui contient 3 type de materiel et une autre table mainte qui a un champs matériel et une cle étrangere id_materiel de la table matériel, quand j'insere dans la table mainte si dans le champs matériel g ordi j'aimerais que dans le champs id_materiel de la table mainte qu'il mettre l'id qui correspond a l'ordi dans la table materiel dans le champs id_materiel . et ainsi de suite je c comment faire pour un type mais pas pour les 3 je pense que je dois mettre une boucle mais j'arrive pas a le resoudre. svp g besoin de votre aide.
<?php $sql = "SELECT * FROM Materiels"; $query = sqlsrv_query($conn, $sql); ?> <td> <label><font size="2">Materiel</font></label> </td> <td> <select name="Materiels_id" size="1"> <option value="0"> </option> <?php while ($donnees = sqlsrv_fetch_array($query)){ ?> <option value="<?php echo $donnees ['id_materiels']; ?>"><?php echo $donnees ['Types_materiels']; ?></option> <?php }//end while ?>
et pour le l'insertion
$sql= "INSERT INTO Mainte( Dep, Materiel, Materiels_id) VALUES (?, ?,(select id_materiels FROM Materiels WHERE Types_Materiels='Ordinateurs'))";
A voir également:
- Select insert
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Touche insert sur clavier portable hp ✓ - Forum Clavier
- Reboot and select proper boot device or insert boot media in selected boot device and press a key ✓ - Forum PC portable
- Accéder à la fonction secondaire "insert" de ma touche "Delete" - Forum PC portable
6 réponses
Bonjour,
Tu dois pouvoir faire un truc du genre :
Tu dois pouvoir faire un truc du genre :
INSERT INTO Mainte SELECT ?,?,id_materiels FROM Materiels WHERE Types_Materiels='Ordinateurs'))
je comprends pas trop bien .
y'a 3 type de materiel 1-ordi , 2-imp,3-scr
dans la table mainte si le champs materiel contient ordi je dois prendre l'id de l'ordi ds la table materiel pour le mettre dans le champs id_materiel dans Mainte, mais c = a imp je prends l'id imp sinon scr. malheureusement y'a pas de boucle if voila mon plus grand prob.
y'a 3 type de materiel 1-ordi , 2-imp,3-scr
dans la table mainte si le champs materiel contient ordi je dois prendre l'id de l'ordi ds la table materiel pour le mettre dans le champs id_materiel dans Mainte, mais c = a imp je prends l'id imp sinon scr. malheureusement y'a pas de boucle if voila mon plus grand prob.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, je pense que tu peux faire ainsi:
Tu ne nous montres pas le code avant et après l'insertion. Les trois "?" sont à remplacer, le premier par la valeur que tu veux pour Dep, le deuxième et le troisième, deux fois par la valeur que tu veux pour Materiel.
Si j'étais toi, je ne mettrais pas le champ Materiel dans la table Mainte, parce qu'il est déjà présent dans la table Materiels, et que Materiels_id suffit pour lier les deux tables.
$sql= "INSERT INTO Mainte ( Dep, Materiel, Materiels_id) SELECT ?,?,id_materiels FROM Materiels WHERE Types_Materiels=?";
Tu ne nous montres pas le code avant et après l'insertion. Les trois "?" sont à remplacer, le premier par la valeur que tu veux pour Dep, le deuxième et le troisième, deux fois par la valeur que tu veux pour Materiel.
Si j'étais toi, je ne mettrais pas le champ Materiel dans la table Mainte, parce qu'il est déjà présent dans la table Materiels, et que Materiels_id suffit pour lier les deux tables.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour,
je laisse l'insertion pour un instant. mais g un autre probleme ca concerne la connection ceci est mon code:
quand je rentre l'username et le pass je reste toujours dans la meme page la redirection n'est pas faite. toute aide est la bienvenue.
Cordialement,
Imelda
je laisse l'insertion pour un instant. mais g un autre probleme ca concerne la connection ceci est mon code:
<?php require("connect.php"); if(isset($_POST['username'])AND isset($_POST['Motd_passe'])){ $username=htmlspecialchars($_POST['username']); $Motd_passe=htmlspecialchars($_POST['Motd_passe']); $requete="SELECT * FROM administrateur"; $query=sqlsrv_query($conn,$requete); while($donnees=sqlsrv_fetch_array($query)) { if($donnees['username']==$username && $donnees['Motd_passe']==$Motd_passe) { session_start(); $_SESSION['id']=$donnees['id']; $_SESSION['admin']=$username; header("Location:../Base/ordinateur/production/index_o.php"); } } sqlsrv_close($query); } ?> <!DOCTYPE html> <html lang="en"> <head> <body> <div class="right_col" role="main" > <form method="POST" action=""> <fieldset> <div style="margin:20%";> <table > <tr> <td>Login: </td> <td> <input type="text" name="username" required> </td> </tr> <tr> <td> Mot de Passe: </td> <td><input type="password" name="Motd_passe" required></td> </tr> <tr><td> <button type="submit" Value="Connection">Connection</button> </div> </td></tr> </table> </fieldset> </form> </div> </body> </html>
quand je rentre l'username et le pass je reste toujours dans la meme page la redirection n'est pas faite. toute aide est la bienvenue.
Cordialement,
Imelda
Bonjour,
Pardon mais j'ai l'impression d'avoir raté quelque chose au vu des réponses...
Ton id_materiels que tu veux insérer, il ne faut surtout pas le requêter lors de l'insertion ! Il t'est donné par le <select> dans lequel l'utilisateur a choisi son type de materiel...
Du coup ta requête d'insertion devient tout simplement
Où le troisième "?" sera, comme le Dep et le Materiel, issu du formulaire $_POST['Materiels_id'];
Xavier
Pardon mais j'ai l'impression d'avoir raté quelque chose au vu des réponses...
Ton id_materiels que tu veux insérer, il ne faut surtout pas le requêter lors de l'insertion ! Il t'est donné par le <select> dans lequel l'utilisateur a choisi son type de materiel...
<select name="Materiels_id" size="1"> <option value="0"> </option> <?php while ($donnees = sqlsrv_fetch_array($query)){ ?> <option value="<?php echo $donnees ['id_materiels']; ?>"><?php echo $donnees ['Types_materiels']; ?></option>
Du coup ta requête d'insertion devient tout simplement
$sql= "INSERT INTO Mainte( Dep, Materiel, Materiels_id) VALUES (?, ?, ?)";
Où le troisième "?" sera, comme le Dep et le Materiel, issu du formulaire $_POST['Materiels_id'];
Xavier