|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Membre à l'essai
![]() |
Bonjour, j'ai un petit problème et je ne sais pas comment m'y prendre
Voilà : je copie le contenu d'une table A dans une table B avec cette commande Code :
J'ai souhaité ensuite modifier un champ des nouvelles entrées ainsi crées dans la table B. J'ai tenté de faire ceci : Code :
Donc ma question : existe-t-il une ligne de commande à ajouter à ce code : Code :
Code :
merci d'avance |
||||||||
|
|
00
|
|
|
#2 | ||
|
Futur Membre du Club
![]() Inscription : septembre 2009 Messages : 36 ![]() |
Bonjour,
Comment fait tu cela ? : Code :
Dans une même boucle ? Apres ton 1er insert , fait un select * from A avec un while ou dedans tu mets tes updates. Tu as déja essayé ? Steven |
||
|
|
01
|
|
|
#3 | ||||
|
Membre à l'essai
![]() |
Citation:
j'ai tenté de faire une boucle genre : Code :
je pense que cette solution est sur la bonne piste mais le mysql_fetch_row ne convient pas puisque la requête n'est pas un SELECT. Autrement dit existe-il un truc genre mysql_fetch_row mais permettant de récuperer un résultat de requete de copie... Citation:
- Je veux copier certaines ligne de A vers B mais je ne sais pas à priori combien de lignes seront affectées pour la copie - Je me retrouve donc avec x lignes copiées dans B - je veux mettre à jour un champ de ces x ligne copiée dans b et cette valeur sera différente du champ correspondant à la même entrée dans la table A - Le seul moyen que j'ai d'identifier les lignes copiées dans B c'est leur id auoincrementiel |
||||
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() |
Une autre idées me vient pour arranger mon problème.
Si une requête de type : Code :
mysql_query("INSERT INTO `B` SELECT * FROM `A` WHERE <maclause>"); |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : septembre 2009 Messages : 36 ![]() |
Peux tu développer quand tu dis que tu veux mettre à jour ton champs ID de la table B stp ?
Merci |
|
|
00
|
|
|
#6 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
Heu...
Code :
INSERT INTO tblb SELECT a,b,CONCAT(c, 'peter') FROM tbla WHERE c='hello'
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#7 | ||||
|
Membre à l'essai
![]() |
je me suis peut-être mal exprimé désolé, je vais essayé d'être plus précis :
Ma table A constituée des champs par exemple : id, nom, prenom, age Ma table B est une copie de la table A au niveau de la structure donc ces champs sont également id, nom, prenom, age Pour les deux table le champ ID est en auto-increment Disont que ma table A contienne ça : 1 Legrand, Albert, 10 2 Machin, Arthur, 20 3 Bidule, Toto, 20 4 Chose, Titi, 20 Je veux copier d'un bloc dans la table B toutes les personnes ayant 20 ans je fait donc : Code :
mysql_query("INSERT INTO `B` SELECT * FROM `A` WHERE `age`=20"); 1 Legrand, Albert, 10 2 Machin, Arthur, 20 3 Bidule, Toto, 20 4 Chose, Titi, 20 Je veux ensuite modifier ma table B en passant l'âge des dernière lignes inscrites dans cette base à 0. Mais je ne peux pas faire "UPDATE" avec une clause "WHERE age=20" (parce que dans mon prog à priori je ne peu pas savoir ce que contient age au moment de la requête). Donc je me suis dit que dans une éventuelle requête UPDATE table B faites de suite après la requête de copie de A vers B il y aurait peut-être un moyen de trouver l'id (au-increment) de la table b des dernière insertions comme clause pour l'UPDATE et de pouvoir faire la mise à jour donc un truc du genre ( je reprend la première requête également pour plus de clarté): Code :
Comme je ne trouve pas de solution du côté de mysql_insert_id() je me demande si dans la commande d'insertion/copie on ne peut pas bidouiller un truc qui permettent en une seule commande de copier les bonnes lignes et en plus de les mettre à jour dans la table B ou alors autre solution : Un truc qui me permettent de récupérer les dernier id auto-inc inscrits dans la table B suite à la commande de copie (et donc connaissant ces id je peut ensuite faire ma mise à jour) ou encore Une commande ou un bout de code qui permettrait de faire comme un Code :
Une de ces solutions est-elle réalisable si oui comment ? Ou Alors toute autre suggestion est la bienvenue |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com