IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Copie d'une colonne d'une table dans une autre table


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Copie d'une colonne d'une table dans une autre table
    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.

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 15
    Points : 17
    Points
    17
    Par défaut MySql: Copie données d'une colonne vers une autre
    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:
    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);
     
    }
    J'ai créé une table nommée TableDest avec une structure similaire:
    Id: Identifiant unique
    Dest: Un champ texte qui contient une donnée
    J'ai aussi rempli la table TableDest avec 10 valeurs:
    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);
    }
    2. Copie des données d'une colonne vers une autre

    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:
    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;
       }	
    }
    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
    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&eacute;es du formulaire &agrave; la base de donn&eacute;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>
    J'espère que c'est ce que tu souhaitais.

    Elx

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2009
    Messages : 12
    Points : 7
    Points
    7
    Par défaut précision supplémentaire
    Citation Envoyé par Elx38 Voir le message

    2. Copie des données d'une colonne vers une autre

    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:
    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;
       }	
    }

    Elx
    Bonjour,

    ma question va avoir l'air bête, mais je la pose quand même

    Dans le script ci-dessus quel est le nom des colonnes de la table n° 1 et de la table n° 2 ?
    Je penche pour result1 et result2 : c'est bien ça ?

  4. #4
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    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 )

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 034
    Points : 23 779
    Points
    23 779
    Par défaut
    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).

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/05/2015, 10h23
  2. [XL-2013] Copier cellules en ligne dans une colonne qui se trouve dans un autre classeur
    Par Wushugringo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2015, 08h07
  3. [XL-2003] Sélectionner une liste dans une colonne et la reporter dans un autre fichier
    Par bentor22 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 29/01/2013, 14h22
  4. Réponses: 2
    Dernier message: 27/12/2012, 21h26
  5. Afficher le nom de la table dans une colonne
    Par lrochat dans le forum Requêtes
    Réponses: 1
    Dernier message: 13/02/2008, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo