SVP, copier un enregistrement d'une table dans une autre table [Résolu]

cs_sema 110 Messages postés mardi 22 mars 2005Date d'inscription 16 juin 2005 Dernière intervention - 19 avril 2005 à 16:01 - Dernière réponse : cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention
- 20 avril 2005 à 16:59
hello,

voilà mon probleme:

j'ai une table table1 qui contient plusieurs enregistrement, (entre autre un champs date suppression),
et quand la date de suppression est arrivé (date d'aujourd'hui=date de suppression), alors cette ligne, (cet enregistrement)
sera supprimer.

ce que je veux, c'est juste avant de supprimer enregistrer cette ligne dans une autre table 'archivage' ( comme un couper coller)

pour info, voila en gros ce que j'ai dans mes tables!!

exemple:

table1

codetable datemisenligne datesup titre
1 19/04/2005 21/04/2005 archiver le 21
2 19/04/2005 30/05/2005 archiver au moi de mai

archivage

codetable datemisenligne datesup titre
1 03/03/2005 19/04/2005 archiver le 21

j'espere que je me suis fait bien comprendre
merci d'avance à tout le monde

Un pour toutes, tous pour UNE !!!
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 19 avril 2005 à 16:41
3
Merci
Ok bon un exemple lol...



tu dois supprimer la ligne codetable $code ( 1 par exemple)



$requete = mysql_query ("SELECT datemisenligne, datesup, titre FROM table1 WHERE codetable=
'".$code."'") or die (...);

while ($tab = mysql_fetch_assoc ($requete))

$miseajour = mysql_query ("INSERT INTO archive ('codetable', 'datemisenligne', 'datesup', 'titre'
) VALUES ($code, $tab['datemisenligne'], $tab['datesup'], $tab['titre'])") or die (...);

$suppr = mysql_query("DELETE FROM table1 WHERE codetable='".$code."'") or die (...);



J'ai pu oublier des quotes, fais attention, on voit mal la-dessus.

Merci malalam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 118 internautes ce mois-ci

Commenter la réponse de malalam
Meilleure réponse
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 19 avril 2005 à 18:00
3
Merci
Salut,



utilise plutôt les requêtes de type INSERT.... SELECT



ensuite un DELETE



ça t'évitera de faire des fetch_row inutiles et crades dans ce cas.



Testes ceci :



mysql_query("INSERT INTO archive SELECT codetable,datemisenligne,datesup,titre FROM table1 WHERE codetable='".$code."'");

mysql_query("DELETE FROM table1 WHERE codetable='".$code."'');



et voilà, deux requêtes propres ;-)



a ++


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>

Merci cs_Anthomicro 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 118 internautes ce mois-ci

Commenter la réponse de cs_Anthomicro
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 19 avril 2005 à 16:26
0
Merci
Hello,



ou est le probleme ?

tu fais un INSERT INTO dans ta table archive des donnees avant de faire un DELETE, voila tou t?
Commenter la réponse de malalam
JoJo738 1267 Messages postés mercredi 7 juillet 2004Date d'inscription 29 juin 2010 Dernière intervention - 20 avril 2005 à 00:40
0
Merci
Lu,

Anthomicro ce n'est pas toi qui rouspette quand on ne priviligie pas les ' aux "
mysql_query('INSERT INTO archive SELECT codetable,datemisenligne,datesup,titre FROM table1 WHERE codetable="' . $code .'" ');

mysql_query('DELETE FROM table1 WHERE codetable="' . $code . '" ');

De plus il y a une erreur ici :

codetable='".$code."'')
<hr style="width: 100%; height: 2px;">Si ma reponse te convient, merci de l'accepter !
Commenter la réponse de JoJo738
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 20 avril 2005 à 09:16
0
Merci
C'est juste, Antho a raison, c'est plus clair comme ca, j'avais oublie cette syntaxe.
Commenter la réponse de malalam
cs_sema 110 Messages postés mardi 22 mars 2005Date d'inscription 16 juin 2005 Dernière intervention - 20 avril 2005 à 11:17
0
Merci
ok, je vous remercie tous

Un pour toutes, tous pour UNE !!!
Commenter la réponse de cs_sema
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 20 avril 2005 à 16:59
0
Merci
Jojo,



je préfère quelques fois la clarté (dans les requêtes sql par exemple)...



Disons que je préfère ça :



mysql_query("INSERT INTO archive SELECT codetable,datemisenligne,datesup,titre FROM table1 WHERE codetable='".$code."'");

mysql_query("DELETE FROM table1 WHERE codetable='".$code."');


à ça :



mysql_query('INSERT INTO archive SELECT codetable,datemisenligne,datesup,titre FROM table1 WHERE codetable=\''.$code.'\'');

mysql_query('DELETE FROM table1 WHERE codetable=\''.$code.'\'');






<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.