Problème avec identifiants auto_incrément

kanaz - 19 déc. 2013 à 11:06
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 - 19 déc. 2013 à 22:18
Bonjour a toute la communauté, j'ai un problème avec mes identifiaants auto_incrément.
j'ai deux tables: categorie(idcat,designationcat), produit(idprod,designationprod,idcat). idcat est auto_incrément, et idprod est de type String. j'ai déjà enregistrer des données dans la table categorie et je cherche maintenant à enregistrer des données dans la table produit et c'est mon problème car idcat etant une clé étrangère dans produit, je ne sais pas comment recupérer idcat dans produit. je demande de l'aide à la communauté. voici mon code:

String Re="SELECT DISTINCT LAST_INSERT_ID() FROM categorie";

ResultSet Res;
Res=st.executeQuery(Re);

String req;
req="INSERT INTO article(idprod,designationprod,,idcat) VALUES('"+idprod+"','"+dsgprod+"','"+Res.getInt("idCategorie") +"')";

int r;
r=st.executeUpdate(req);

return r;

7 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 déc. 2013 à 11:15
Bonjour,

J'ai un peu de mal à comprendre ta question...

Bon.. déjà: pense à utiliser la coloration syntaxique lorsque tu poste du code stp. - voir ICI si tu ne sais pas comment faire.

Enuite:
 LAST_INSERT_ID

Te donne l'ID du dernier enregistrement effectué dans la table. Je ne comprend pas la requête que tu as fait avec..(du moins son utilité pour ta question..)

Après... je dirais que lorsque tu rempli ta table produit, c'est à TOI de dire à quelle catégorie appartient le produit que tu insert... (en indiquant son ID dans la requête).
Tu ne peux pas demander à ta bdd de deviner toute seule qu'une baguette de pain va dans la catégorie Bouffe...

0
je vous comprend! Mais ce que je desire inserer est que je veux a travers une interface sur netbeans IDE recuperer une cetegorie dejà enregistrer puis dans le produit c'est le nom du produit que j'ai mi sur l'interface avec un combobox.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 déc. 2013 à 13:09
On dit bien la même chose...
Dans ton interface, lorsque tu mets le nom du produit.. tu choisi (je suppose) ta catégorie (surement dans une liste déroulante. via laquelle tu peux récupérer l'id de la catégorie sélectionnée...).
Tu disposes donc de toutes les informations nécessaires à envoyer dans ton INSERT.
0
c'est au niveau de la recupération de l'id de la categorie selectionné qui pose mon problème. Puisque dans le INSERT INTO je dois mettre idcat là et dans VALUES recupérer sa valeur lorsque je selectionne une categorie.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 déc. 2013 à 15:13
c'est au niveau de la recupération de l'id de la categorie selectionné qui pose mon problème.
Là, il faut que tu regarde du côté de ton Formulaire... de la même façon que tu récupère dsgprod .. tu dois aussi récupérer ton idcat (celui qui correspond au choix DANS ta liste deroulante...)
0
Là vraiment je suis trop perdu car je ne sais pas quoi faire car vraiment qui bloque.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
OU bien c'est au moment du remplissage de la liste deroulante que je dois recuperer l'id en meme temps?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 déc. 2013 à 16:25
Lorsque tu rempli ta liste déroulante.. tu stocke Le libellé (le texte que tu vas y afficher) et son id.
Comme ça, lorsque tu valide ton formulaire... tu récupère les informations de tes différents champs pour t'en servir dans ta requête d'INSERT.
0
j'ai écrit le code suivant pour remplir ma liste déroulante:

maintenant ce que vous dites, commettre mettre idcat dans ce code pour lui recuperer en meme temps que designationcat. pouvez m'aicler en le plaçant à l'endroit ou je dois le mettre.

String Requete="SELECT DISTINCT designationcat FROM categorie";

st=connect.createStatement();

ResultSet Res=st.executeQuery(Requete);

while(Res.next())
{

designationcat.addItem(Res.getString("designationcat"));

}
Res.close();
connect.close();
0
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
19 déc. 2013 à 22:18
Fait une procedure.....
0
Rejoignez-nous