Copie d'une ligne d'une table dans une autre!

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Copie d'une ligne d'une table dans une autre!

Re: Copie d'une ligne d'une table dans une autre!

par two3d » 06 mars 2013, 22:59

je savais pas

Re: Copie d'une ligne d'une table dans une autre!

par BGMaxime » 06 mars 2013, 16:52

bonjour two3d

on peut très bien faire un

insert into table 2 select * from table1;

je l'ai testé avec phpmyadmin, et fais très souvent en SQL DB2.

le fait est que l'on ne controle pas tout, mais pourquoi pas.

Il ya quelques temps j'avais l'habitude de triturer des données importantes en taille et en contenu dans une table temporaire, et dès que mes manips étaient ok, je balançais tout le contenu dans la base de travail.

C'est brutal, mais efficace quand il faut aller vite et taper fort :-)

C'est moins joli que du code php facilement maintenable et qui pourrait évoluer dans le futur, mais ça roule.

A+

Re: Copie d'une ligne d'une table dans une autre!

par two3d » 06 mars 2013, 16:20

salut,

ta pas d'erreur quand tu exécute cette "requête" ??? :lol:

INSERT + SELECT = faut bosser !

pour insérer les résultat de ligne que souhaite supprimer, te faut d'abord récupérer toutes ligne je pense:
// on récupéré les infos à transferer avant de les supprimer:
$ReqTable1 = mysql_query("SELECT * FROM table1 WHERE num_regimentaire='".$num54."'"); // pense à faire des concaténation pour tes variables
$ResutatTable1 = mysql_fetch_assoc($ReqTable1);
// ensuite on les transfert dans la table2 (l'historique)
mysql_query("INSERT INTO table2 SET 
	num_poste = '".$ResutatTable1['num_poste']."', 
	num_regimentaire = '".$ResutatTable1['num_regimentaire']."', 
	num_serie = '".$ResutatTable1['num_serie']."', 
	marque = '".$ResutatTable1['marque']."', 
	designation = '".$ResutatTable1['designation']."', 
	confidentialite = '".$ResutatTable1['confidentialite']."', 
	gestionnaire = '".$ResutatTable1['gestionnaire']."', 
	situation = '".$ResutatTable1['situation']."', 
	position = '".$ResutatTable1['position']."', 
	login = '".$ResutatTable1['login']."'"); // à sécuriser si besoin bien sur

Re: Copie d'une ligne d'une table dans une autre!

par BGMaxime » 06 mars 2013, 16:12

bonjour,

ton code

mysql_query("INSERT INTO `poste_delete` SELECT * FROM `postes`");
mysql_query ("delete from ".$type."s where num_regimentaire='$num54'");

montre que tu remplies poste_delete avec tout e contenu de postes à chaque fois que tu supprimes un enregistrements.
peut etre que l'insertion d'un enregistrement deja existant pose problème.

Pourquoi ne pas rajouter

where num_regimentaire='$num54'"

à la fin de ton insert pour ne copie que ce qui doit être supprimé ?

Tu peux aussi, mais c'est alors une question de structure de tes tables, n'avoir qu'une seule table pour les postes, et ajouter un champ bouléen EST_SUPPRIMé.

a+

Re: Copie d'une ligne d'une table dans une autre!

par biddal » 06 mars 2013, 15:35

Je précise tous mes noms de colonnes sont identiques d'une table à l'autre!

Copie d'une ligne d'une table dans une autre!

par biddal » 06 mars 2013, 15:34

Bonjour
Voilà losque je supprime un élément d'une de mes tables je souhaiterai que celui-ci soit copié dans une table identique qui me sert juste d'historique!
Voilà mon code actuel!
if($supp=="valider")
{
	include ("/admin/connectbase.php"); 
	mysql_query("INSERT INTO `poste_delete` SELECT * FROM `postes`");
	mysql_query ("delete from ".$type."s where num_regimentaire='$num54'");
	$cpp.="<b><div id='footer'>Enregistrement supprim&eacute; de la base</div></b><BR><br>";
}
Le problème se pose à mysql_query("INSERT INTO `poste_delete` SELECT * FROM `postes`"); lors de la copie!
Voilà l'arborescence de mes 2 tables qui sont identiques:

num_poste
num_regimentaire
num_serie
marque
designation
confidentialite
gestionnaire
situation
position
login

Dans ma table poste l'onglet 'login' contient le login de la personne ayant créé l'enregistrement!
Lors de la copie je souhaite tous les éléments de ma table poste soit copiés sauf login qui sera remplacé par le login de la personne connectée qui procéde à la suppression du poste afin d'avoir une trace de la personne l'ayant supprimé!

Merci beaucoup d'avance pour votre aide!
Bonne journée!