Bonjour,
J'ai deux tables table1 et table2
Je souhaite copier le contenu de la colonne de la table1 vers une des colonnes de la table2.
Merci d'avance.
Bonjour,
J'ai deux tables table1 et table2
Je souhaite copier le contenu de la colonne de la table1 vers une des colonnes de la table2.
Merci d'avance.
Bonjour
J'ai écrit une petite page php qui copie les données d'une colonne de table vers une colonne d'une autre table:
http://www.artweweb.com/Forum/CopieColonne.php
Voici ma méthode:
1. Préparation des données
J'ai créé une table nommée TableOrg avec 2 champs:
Id: Identifiant unique
Val: Un champ texte qui contient une donnée
J'ai rempli la table TableOrg avec 10 valeurs:
J'ai créé une table nommée TableDest avec une structure similaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for($i=0;$i <10;$i++) { $Val="Org$i"; $query = "INSERT INTO TableOrg(Id,Val) VALUES($i,'$Val')"; mysql_query($query); }
Id: Identifiant unique
Dest: Un champ texte qui contient une donnée
J'ai aussi rempli la table TableDest avec 10 valeurs:
2. Copie des données d'une colonne vers une autre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for($i=0;$i <10;$i++) { $Val="Dest$i"; $query = "INSERT INTO TableDest(Id,Dest) VALUES($i,'$Val')"; mysql_query($query); }
Pour copier les données de la 2ème colonne de la table TableOrg dans la 2ème colonne TableDest, j'ai ouvert les 2 tables avec la methode SELECT * FROM Table.
J'ai ensuite créé 2 boucles imbriquées pour me déplacer, verticalement, en même temps, sur les 2 tables, avec la fonction mysql_fetch_row.
J'ai copié pour chaque champ la donnée colonne N°2 de TableOrg vers la colonne N°2 de TableDest avec la methode: UPDATE en sélectionnant la ligne par son Id:
Et voici tout le code de ma page php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 echo " Copie de la colonne N°2 de TableOrg dans le colonne N°2 de TableDest <br>"; $query = "SELECT * FROM TableOrg"; $result1=mysql_query($query); $num_rows1 = mysql_num_rows($result); $query = "SELECT * FROM TableDest"; $result2=mysql_query($query); while($row = mysql_fetch_row($result1)) { while($rowDest= mysql_fetch_row($result2)) { $query="UPDATE TableDest SET Dest='$row[1]' WHERE Id=$rowDest[0]"; mysql_query($query); break; } }
J'espère que c'est ce que tu souhaitais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Envoi les données du formulaire à la base de données MySql</title> </head> <body> <?php echo "Connection à la base de données<br>"; // Déclaration des paramètres de connexion $host = "serveur.basemysql"; $user = "login"; $bdd = "baseDeDonnées"; $passwd = "motDePasse"; // Connexion au serveur mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); //Suppression de toutes les valeurs de la table TableOrg $query = "TRUNCATE TableOrg"; mysql_query($query); echo " Création de 10 enregistrements dans la table TableOrg <br>"; for($i=0;$i <10;$i++) { $Val="Org$i"; $query = "INSERT INTO TableOrg(Id,Val) VALUES($i,'$Val')"; mysql_query($query); } //Lecture de la table $query = "SELECT * FROM TableOrg"; $result=mysql_query($query); //Nombre d'enregistrements $num_rows = mysql_num_rows($result); echo " la table TableOrg contient maintenant $num_rows enregistrements <br>"; echo "Données de la table TableOrg <br>"; while($row = mysql_fetch_row($result)) { echo $row[1]." "; } echo "<br>"; //Suppression de toutes les valeurs de la table TableDest $query = "TRUNCATE TableDest"; mysql_query($query); echo " Création de 10 enregistrements dans la table TableDest <br>"; for($i=0;$i <10;$i++) { $Val="Dest$i"; $query = "INSERT INTO TableDest(Id,Dest) VALUES($i,'$Val')"; mysql_query($query); } //Lecture de la table $query = "SELECT * FROM TableDest"; $result=mysql_query($query); //Nombre d'enregistrements $num_rows = mysql_num_rows($result); echo " la table TableDest contient maintenant $num_rows enregistrements <br>"; echo "Données de la table TableDest:<br>"; while($row = mysql_fetch_row($result)) { echo $row[1]." "; } echo "<br>"; echo " Copie de la colonne N°2 de TableOrg dans le colonne N°2 de TableDest <br>"; //Lecture de la table TableOrg $query = "SELECT * FROM TableOrg"; $result1=mysql_query($query); //Nombre d'enregistrements de TableOrg $num_rows1 = mysql_num_rows($result); //Lecture de la table TableDest $query = "SELECT * FROM TableDest"; $result2=mysql_query($query); //Copie de la colonne N°2 de TableOrg dans le colonne N°2 de TableDest while($row = mysql_fetch_row($result1)) { while($rowDest= mysql_fetch_row($result2)) { $query="UPDATE TableDest SET Dest='$row[1]' WHERE Id=$rowDest[0]"; mysql_query($query); break; } } //Lecture de la table $query = "SELECT * FROM TableDest"; $result=mysql_query($query); //Nombre d'enregistrements $num_rows = mysql_num_rows($result); echo " la table TableDest contient $num_rows enregistrements <br>"; echo "Données de la table TableDest <br>"; while($row = mysql_fetch_row($result)) { echo $row[1]." "; } echo "<br>"; mysql_close(); ?> </body> </html>
Elx
tout simplement ; si les deux tables sont déjà renseignées alors on met une petite mise à jour comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part update table1 set table1.col1=(select table2.col2 from table2 where table1.id1=table2.id2 )
Bonjour,
Pour mieux vous aider, il nous faudrait plus d'informations sur la structure de ces tables et leur contenu respectif.
Notamment, s'agit-il de mettre à jour la colonne de la table 2 (UPDATE) ou faut-il insérer de nouvelles lignes dans cette table (INSERT) ?
Si c'est le deuxième cas, voir la: http://mysql.developpez.com/faq/?pag...ertion_requete
Si non, dites-nous en plus (notamment comment faire la correspondance entre les 2 tables).
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager