jokerman Posté 7 Février 2006 Partager Posté 7 Février 2006 Bonjour a tous. Je vous expose mon probleme : j'ai 2 tables : article_tbl ------------- article_id (index autoincrementé) ... et input_stocl_tbl ----------------- stock_id (index autoincrementé) article_id ... dans le processus normal, je cré une entrée dans la table article_tbl puis dans la table input_stocl_tbl . Suite a un probleme, une partie de la table article_tbl a été perdue je voudrai reconstruire les articles manquant, à partir de la Table input_stocl_tbl qui possede une partie des infos de chaque article de la table article_tbl je voudrais faire une requette pour afficher les données de input_stocl_tbl si input_stocl_tbl.article_id n'existe pas dans article_tbl. Vous avez une solution ? merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
smile Posté 7 Février 2006 Partager Posté 7 Février 2006 Salut, L'article_id de ta table article_tbl est en clé primaire et donc ne peut etre en double, ensuite en faisant un select avec un distinct sur le champs article_id de ta table input_stocl_tbl te permettra d'avoir qu'une ligne par article_id. Il te reste plus qu'a inserer ensuite dans ta table article_tbl les id manquants Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokerman Posté 7 Février 2006 Auteur Partager Posté 7 Février 2006 (modifié) Bonjour, et merci pour ta réponse, je ne sais pas si j'ai été assé clair : j'ai 2 tables : article_tbl------------------------------------article_id (key) | article_nom | etc ...------------------------------------1 | abc |2 | tralala |input_stocl_tbl------------------------------------stock_id (key) | article_id | quantite------------------------------------1 | 1 | 52 | 1 | 23 | 3 | 11 Procedure : 1/ un article est ajouté dans la table article_tbl (le catalogue). disons l'article abc (article_id = 1). 2/ j'ajoute dans la table input_stocl_tbl (le stock) l'article abc lundi (quantite 5) et mercredi (quantite 2) j'ai donc pour l'article abc : une ligne dans la table article_tbl (le catalogue). et une ou plusieurs lignes dans la table input_stocl_tbl (le stock) la valeur du champ article_tbl.article_id est identique à input_stocl_tbl.article_id. Mon probleme : ------------------------ les les 100 derniers articles de article_tbl (le catalogue) ont disparu (obligation de remttre une sauvegarde ancienne de la table des articles, je me retouve donc avec des articles dans la table du stock (input_stocl_tbl) , qui n'existent plus dans le catalogue(article_tbl). Je voudrais faire un SELECT sur la table input_stocl_tbl en selectionnant (par les champs input_stocl_tbl.article_id et article_tbl.article_id ) les articles dans le stock qui n'existent plus dans le catalogue(article_tbl). Ensuite je souhaite faire un INSERT dans la table article_tbl pour recréer les articles manquants, est-ce comprehensible ? Modifié 7 Février 2006 par jokerman Lien vers le commentaire Partager sur d’autres sites More sharing options...
smile Posté 7 Février 2006 Partager Posté 7 Février 2006 Ben oui de tete j'avais bien imaginer cela mais ca confirme ce que j'ai expliqué plus haut, l eproblème c'est que tu n'auras plsu le nom des articles, il faudra les recreer mais voici le code : $kf="SELECT distinct article_id FROM input_stocl_tbl";$f=mysql_query($kf) or die(mysql_error('erreur'));while($data = mysql_fetch_array($f)) { $result1 = mysql_query("INSERT INTO article_tbl (article_id article_nom) VALUES ('$data[article_id]','sais pas perdu')"); } si lors de l'insert l'id existe déjà il devrait pas l'inserer etant donné que ta clé est primaire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spidetra Posté 8 Février 2006 Partager Posté 8 Février 2006 SELECT * FROM input_stocl_tbl WHERE article_id NOT IN ( SELECT * FROM article_tbl ) te donne toutes les lignes de input_stocl_tbl qui ne sont pas dans article_tbl. Lien vers le commentaire Partager sur d’autres sites More sharing options...
smile Posté 8 Février 2006 Partager Posté 8 Février 2006 oui tu peux aussi faire une sous requete Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokerman Posté 8 Février 2006 Auteur Partager Posté 8 Février 2006 Merci beaucoup à tous les deux j'ai pu réparer la base C nickel Une derniere petite question est t'il possible d'afficher a l'ecran (print) l'id des champs traités par une requette INSERT ou UPDATE ? (genre verbose de la requette) ? Merci encore jokerman Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant