Recuperer la clé primaire et l'inserer dans une autre table

Fermé
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015 - Modifié par natasha82 le 21/05/2015 à 09:54
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015 - 21 mai 2015 à 12:40
Bonjour

j'ai deux table
enseignant(id_ens,nom,prenom,email,sexe)
message(id_msg,id_ens,objet,description,date,time)
alors j'ai fait un programme qui fait l'ajout d'un message,je voulais insérer id_ens de la table enseignant dans la table message mais il m'affiche toujours le id_ens du premier enseignant qui est "1" au lieu de "2" pouvez vous m'aider svp;
voici le code:de la jsp


<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>


<%@ page pageEncoding="UTF-8" %>
<%
String nom_ens=(String)request.getSession().getAttribute("nom_ens");
if (nom_ens==null){
nom_ens=""; } %>


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Nouveau Affichage</title>
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />

</head>
<body>

<div id="general">

<div id="entete">
<div id="logo">
<br/>
<marquee>
<h2> Bienvenue dans L'espace Numérique De Travail de l'UMMTO </h2>

</marquee>
</div>
<div id="menu-haut">

<span id="acc"> <a href="index.jsp"title=" Rotour a la page d'accueil"> Accueil </a></span>
<span id="ident"><a href="inscri.jsp" title="Inscrir si vous etez pas deja inscrire"> Inscription </a></span>
<span id="acce"> <a href="authen.jsp" title=" Identifiez-Vous"> Connexion</a></span>
<span id="ins"> <a href="cours.jsp" title=" cours à télécharger"> Cours </a></span>
<span id="cont"><a href="a propos.jsp" title=" plus d'information"> A propos </a></span>
</div>
</div>

<div id="navigation">
<div id="nav">
<ul>
<li>
<form id="search" name="search" action="chercher.php" method="POST">
<span id="g" >


<img src="css/en.png " align=center>
</span>

<p>
<input type="text" name="recherch" id="recherch" size="25" />
</p>


<p class="submit">
<button type="submit">Chercher</button>
</p>

</form>
</li> <li><a href="">Déconnexion</a></li>
<li><a href="">Changer le profile</a></li>
<li><a href="ForumEnseignant.jsp">Forum</a></li>
<li><a href="UploadFiles.jsp">Gestion des cours</a></li>
<li><a href="ListeAffichagePieceEnseignat.jsp">Gestion des notes</a></li>
<li><a href="ListeAffichEnsei.jsp">Gestion des affichages</a></li>

</ul>


</div>
</div>


<div id="principal">

<div id="gd">

<table border="0" width="">
<tr> <th width="80"></th>
<th colspan="10"><a href="ListeAffichEnsei.jsp"title=" Rotour a la page d'accueil">liste des affichage</a><img src="css/add.png "> </th>

<th width="40"></th> <th ><a href="NouveauAffichEnsei.jsp"title=" Rotour a la page d'accueil">Nouveau Affichage</a> <span id="g" >
<img src="css/add.png ">
</span></th>


</tr></table>


</div>
<div id="ins-zone">
<form name="ins" id="ins" action="NouveauAffichEnsei" method="POST">
<h2> <label id="obli" text-align="center"> </label></h2>


<fieldset class="zone1">

<p class="present">
<label for="nom">Objet</label>
</p>
<p class="present">
<label for="prenom">message</label></p>
<p class="present">



</fieldset>

<fieldset class="zone2">
<p>
<%
String id_etud=request.getParameter("id_etud");
Class.forName("com.mysql.jdbc.Driver");
String login=(String)request.getSession().getAttribute("login");
Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
PreparedStatement pr = cn.prepareStatement("SELECT id_ens FROM enseignant ");
ResultSet rs = pr.executeQuery();
while(rs.next()){


%>

<p>
<input name="objet" type="text" size="15" />
</p>
<p>
<textarea type="message" name="contenue" size="15" ></textarea>
</p>



</fieldset>

<p class="submit">
<button type="submit" value="Valider">Envoyer</button>

<input type="hidden" name="id_ens" value="<%=rs.getString("id_ens")%> "/>
<button type="reset">Annuler</button>

</form>

</div>

</div>
<%}%>
</div>
</div>


</body>
</html>





voici la servlet:


package Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import metier.Message;


public class NouveauAffichEnsei extends HttpServlet {









public void add(Message m){
try {
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
PreparedStatement pr=cn.prepareStatement("INSERT INTO message VALUES(NULL,?,?,?,?,?)");
pr.setString(1, m.getId_gest());
pr.setString(2, m.getId_ens());

pr.setString(3, m.getObjet());
pr.setString(4, m.getContenue());
pr.setString(5, m.getDate());




pr.execute();

}
catch (Exception ex) {
ex.printStackTrace(); } }


protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

}




@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);

String id_gest=request.getParameter("id_gest");
String objet=request.getParameter("objet");
String contenue=request.getParameter("contenue");
String id_ens=request.getParameter("id_ens");
String date=new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date());


Message m = new Message("0", id_ens, objet, contenue, date);
add(m);
request.getSession().setAttribute("m", m);
request.getSession().setAttribute("rep3", "d'etude est ajoute avec succes ");
response.sendRedirect("NouveauAffichEnsei.jsp");
}


@Override
public String getServletInfo() {
return "Short description";
}


}


Merci
A voir également:

1 réponse

VlkPr3s Messages postés 235 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 130
21 mai 2015 à 11:38
Alors si tu as une table (ID_enseignant,XX,XX,XX);
et que tu veux récupérer cette première valeur dans une deuxième table alors tu dois définir dans cette autre table une nouvelle colonne dans ta BDD et tu feras une lecture lors de l'ajout sur la première table pour récupérer la valeur de l'id
ou alors select table1.ID_Enseignant=2;
tu met ta requête dans l'autre table et voilà ..
1
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015
Modifié par natasha82 le 21/05/2015 à 12:08
j'ai fait cette requête pour récupérer le id_ens(SELECT id_ens FROM enseignant "); mais a l'insertion de mon message il me retourne toujours le premier id de l'enseignant existant deja le problème c'est que il manque une condition pour parcourir toute la colonne id_ens ;;;malgré que c'est l'enseignant avec le dernier id_ens qui postule le message il me retourne toujours la valeur "1" qui est le id du premier enseignant
0
VlkPr3s Messages postés 235 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 130 > natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015
21 mai 2015 à 12:09
c'est normal vu que tu lui renseigne pas quel id il veut ... Si tu as un champ de type statique et non une liste il ne t'affichera que le première élément trouvé.

Select id_ens from enseignant where enseignant.id_ens=2

essaie ça ;) ça devrais marché ...

Personnellement je test toujours toutes mes requêtes sur sql server afin d'être direct au courant de si ma requête est bonne ou non

bien à toi Natasha ;)
0
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015
21 mai 2015 à 12:13
mais a ce moment la il accepte que le id=2 si c'est un autre ca ne va pas fonctionner
0
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015
21 mai 2015 à 12:16
id_ens il est auto incremente
0
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015
Modifié par natasha82 le 21/05/2015 à 12:44
svp est ce qu'on peut faire ceci
(SELECT id_ens from enseignant WHERE id_ens=LAST_INSERT_ID();)
mais avant on dois declarer ca :
$id = mysql_insert_id();
mais je trouve pas l'equivalent du $ en java car ceci est en php merci
0