SVP, copier un enregistrement d'une table dans une autre table

Résolu
cs_sema
Messages postés
110
Date d'inscription
mardi 22 mars 2005
Statut
Membre
Dernière intervention
16 juin 2005
- 19 avril 2005 à 16:01
cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
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 !!!
A voir également:

7 réponses

malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
19 avril 2005 à 16:41
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.
3
cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
19 avril 2005 à 18:00
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>
3
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
19 avril 2005 à 16:26
Hello,



ou est le probleme ?

tu fais un INSERT INTO dans ta table archive des donnees avant de faire un DELETE, voila tou t?
0
JoJo738
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
20 avril 2005 à 00:40
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 !
0

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

Posez votre question
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
20 avril 2005 à 09:16
C'est juste, Antho a raison, c'est plus clair comme ca, j'avais oublie cette syntaxe.
0
cs_sema
Messages postés
110
Date d'inscription
mardi 22 mars 2005
Statut
Membre
Dernière intervention
16 juin 2005

20 avril 2005 à 11:17
ok, je vous remercie tous

Un pour toutes, tous pour UNE !!!
0
cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
20 avril 2005 à 16:59
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>
0