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

Messages postés
110
Date d'inscription
mardi 22 mars 2005
Dernière intervention
16 juin 2005
- - Dernière réponse : cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
- 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
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de malalam
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_Anthomicro
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
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
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
29 juin 2010
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
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
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
Messages postés
110
Date d'inscription
mardi 22 mars 2005
Dernière intervention
16 juin 2005
0
Merci
ok, je vous remercie tous

Un pour toutes, tous pour UNE !!!
Commenter la réponse de cs_sema
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
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.