Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2751 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  comment dupliquer une ligne dans ma base de donnée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment dupliquer une ligne dans ma base de donnée

n°1113538
hdh
suis newbie mais je me soigne
Posté le 09-06-2005 à 08:23:27  profilanswer
 

Hello,  
(euh... j'ai mis dans le php parceque ai pas trouvé le mysql)
Question toute bête... à la quelle je ne trouve de réponse !!??
 
Je voudrais smplement dupliquer une ligne dans ma base de donnée : n'existerait-il pas une fonction à utiliser du style "duplicate machin where id est de tant"
 
Si elle n'existe pas : la meilleur facon est-elle derécupérer le contenu de la ligne à dupliquer et de faireun update???  
 
d'avance grand merci pour vos réponses / idées !!
 
a+

mood
Publicité
Posté le 09-06-2005 à 08:23:27  profilanswer
 

n°1113539
cesarr89
Posté le 09-06-2005 à 08:26:48  profilanswer
 

hdh a écrit :

Hello,  
(euh... j'ai mis dans le php parceque ai pas trouvé le mysql)
Question toute bête... à la quelle je ne trouve de réponse !!??
 
Je voudrais smplement dupliquer une ligne dans ma base de donnée : n'existerait-il pas une fonction à utiliser du style "duplicate machin where id est de tant"
 
Si elle n'existe pas : la meilleur facon est-elle derécupérer le contenu de la ligne à dupliquer et de faireun update???
 
d'avance grand merci pour vos réponses / idées !!
 
a+


 
Un INSERT tu veux dire?
 
Sinon bah je pense qu'il y ai une fonction duplicate, mais c'est dans quel but que tu en as besoin? Pourquoi tu veux dupliquer tes données?


---------------
!== Force et honneur ==!
n°1113540
hdh
suis newbie mais je me soigne
Posté le 09-06-2005 à 08:30:31  profilanswer
 

existe pas ??
=> snif
 
pourquoi ??
=> en fait à chaque inscription du nv membre je dois dupliquer certaines données (son profil par défaut) pour qu'il puisse les adapter comme bon lui semble par la suite. et je ne veux pas mettre en dure dans ma page un gros insert car je voudrais que cela soit dynamique...
 
=> tu ferais comment toi ???  
euh.. au fait merci pr ta réponse ;)
 
a+
 

cesarr89 a écrit :

Un INSERT tu veux dire?
Sinon bah je pense qu'il y ai une fonction duplicate, mais c'est dans quel but que tu en as besoin? Pourquoi tu veux dupliquer tes données?


n°1113541
cesarr89
Posté le 09-06-2005 à 08:33:58  profilanswer
 

hdh a écrit :

existe pas ??
=> snif
 
pourquoi ??
=> en fait à chaque inscription du nv membre je dois dupliquer certaines données (son profil par défaut) pour qu'il puisse les adapter comme bon lui semble par la suite. et je ne veux pas mettre en dure dans ma page un gros insert car je voudrais que cela soit dynamique...
 
=> tu ferais comment toi ???
euh.. au fait merci pr ta réponse ;)
 
a+


 
Tu as pas besoin de dupliquer les données, ou alors y'a un truc que je comprends pas?
 
Moi je ferais juste le insert des données lors de l'inscription et quand il veux modifier bah je fais un UPDATE, mais en aucun cas j'ai besoin de dupliquer les données.
J'y vois aucun interet....


---------------
!== Force et honneur ==!
n°1113543
hdh
suis newbie mais je me soigne
Posté le 09-06-2005 à 08:37:29  profilanswer
 

je vais y reflechir : je te tiens au courant !  
merci pr ton aide !
a+
H

cesarr89 a écrit :

J'y vois aucun interet....


n°1113544
cesarr89
Posté le 09-06-2005 à 08:40:43  profilanswer
 

Ok.
Bah de rien.


---------------
!== Force et honneur ==!
n°1113572
PETOZAK
Posté le 09-06-2005 à 09:27:51  profilanswer
 

Moi j'en ai eu besoin donc voila du code homebrew:
 

Code :
  1. function DuplicateLine($db,$tab,$id_tab,$id)
  2. {
  3.  $sqlmaxId="SELECT max($id_tab)+1 as newId FROM ".$tab;
  4.  echo $sqlmaxId."<BR>";
  5.  $sql="SELECT * FROM ".$tab." WHERE ".$id_tab."=".$id ;
  6.  echo $sql."<BR>";
  7.  $res=send_sql($db,$sqlmaxId);
  8.  $row=mysql_fetch_array($res);
  9.  $newId=$row['newId'];
  10.  $result=mysql_query($sql);
  11.  $row2=mysql_fetch_array($result);
  12.  $nb_champs=mysql_num_fields ($result);
  13.  $reqfinal="INSERT INTO $tab values(".$newId."";
  14.  for ($i=1;$i< $nb_champs ; $i++)
  15.   {
  16.   $reqfinal.=",'".$row2[$i]."'";
  17.   }
  18.  $reqfinal.=" )";
  19.  echo $reqfinal."<BR>";
  20.  $res=send_sql($db,$reqfinal);
  21. }


send_sql c'est au fait un mysql_query ;)
$tab->nom de ta table
$id_tab->champ Id de la table
$id-> numero de l'id de la lige a dupliquer
 
J'espere que ca t'aidera ;)

n°1113628
hdh
suis newbie mais je me soigne
Posté le 09-06-2005 à 10:20:44  profilanswer
 

J'ai pas trop le tps tt de suite.. mais je regarde ca azap !
Grand merci pr ton aide : je te tiens au courant !
a+
H
 

PETOZAK a écrit :

Moi j'en ai eu besoin donc voila du code homebrew:
 
J'espere que ca t'aidera ;)


n°1113647
titione
addicted
Posté le 09-06-2005 à 10:34:20  profilanswer
 

et quelque chose comme cela, c'est pas mieux ?  
 

Code :
  1. insert into topics values (default, 'American History', (select topic_id from topics where topic_name = 'History') );


Message édité par titione le 09-06-2005 à 10:34:32
n°1113716
hdh
suis newbie mais je me soigne
Posté le 09-06-2005 à 11:19:56  profilanswer
 

olallallallala !!  
... et le public s'enflamme !! c'est l'euphorie !!  
à qui la requete la plus courte ?? qui dit mieux ?????
 
si ca marche c'est top : je regarde tout à l'heure !!
 
gd merci !
 
a+
 
H
 :bounce:  
 

titione a écrit :

et quelque chose comme cela, c'est pas mieux ?  
 

Code :
  1. insert into topics values (default, 'American History', (select topic_id from topics where topic_name = 'History') );



mood
Publicité
Posté le 09-06-2005 à 11:19:56  profilanswer
 

n°1113752
jokari34
Posté le 09-06-2005 à 11:42:57  profilanswer
 

wé je pensais a un truc de ce genre en SQL, qui m'avait aidé pour faire de l'archivage de données (donc duplication puis suppression):
si la table de destination a exactement la meme structure que la table source :
 
INSERT INTO table_destination SELECT * FROM table_source
WHERE <ma_condition>

n°1117012
hdh
suis newbie mais je me soigne
Posté le 12-06-2005 à 09:36:07  profilanswer
 

Hello,  
 
ca marche.... ;-)  
...en partie ;-(
 
suite à un id autoincrement unique je suis obligé de faire une big magouille du style :  
- je duplique certaines lignes de la table existante (div_type) dans une table ou le id n'est plus autoincremet ni unique
- j'impose une nouvelle valeur à type_mbr (cad à l'identifiant du membre)
- j'envoie le contenu de cette table dans la table de base
- j'efface la table temporaire  
 
euh.. y aurait pas plus simple par zazard ???????
 
d'avance merci pour votre aide !!
 
H
 
 
 ce qui donne :  
 
DROP TABLE IF EXISTS div_type_tmp;
CREATE TABLE div_type_tmp (
  id varchar(6) NOT NULL default '',
  type_id varchar(5) NOT NULL default '',
  type_nom varchar(80) NOT NULL default '0',
  type_type int(12) NOT NULL default '0',
  type_km_mois varchar(12) NOT NULL default '',
  type_km_entre int(12) NOT NULL default '0',
  type_km_att_1000 int(12) NOT NULL default '0',
  type_km_att_6000 int(12) NOT NULL default '0',
  type_km_att_12000 int(12) NOT NULL default '0',
  type_mbr varchar(5) NOT NULL default ''
) TYPE=MyISAM;
 
 
INSERT INTO `div_type_tmp` SELECT * FROM `div_type` where type_mbr = '0';
update div_type_tmp set type_mbr = '9';
INSERT INTO `div_type` SELECT * FROM `div_type_tmp`;
DROP TABLE IF EXISTS div_type_tmp;
 
 
 
sachant que ma table de base est  
CREATE TABLE div_type (
  id int(6) NOT NULL auto_increment,
  type_id varchar(5) NOT NULL default '',
  type_nom varchar(80) NOT NULL default '0',
  type_type int(12) NOT NULL default '0',
  type_km_mois varchar(12) NOT NULL default '',
  type_km_entre int(12) NOT NULL default '0',
  type_km_att_1000 int(12) NOT NULL default '0',
  type_km_att_6000 int(12) NOT NULL default '0',
  type_km_att_12000 int(12) NOT NULL default '0',
  type_mbr varchar(5) NOT NULL default '',
  UNIQUE KEY type_id (id)
) TYPE=MyISAM;
 
 
 
 
 

titione a écrit :

et quelque chose comme cela, c'est pas mieux ?  
 

Code :
  1. insert into topics values (default, 'American History', (select topic_id from topics where topic_name = 'History') );




Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  comment dupliquer une ligne dans ma base de donnée

 

Sujets relatifs
[Access] Base sur serveur distantcomment inserer des donnée ds access avec builder 6
Les caractères accentués s'enregistrent mal dans ma base MySQLphp+mysql une base de donnee pour adherents des associations
rajouter un champs dans ma basevaleur null dans une base
creation de site de vente en lignesuppression d'une ligne d'un fichier en vba
connexion à une base de données avec evb 
Plus de sujets relatifs à : comment dupliquer une ligne dans ma base de donnée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR