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

 MySQL Discussion :

Récupérer les données du jour dans une BDD et les importer dans la mienne


Sujet :

MySQL

  1. #1
    Futur Membre du Club Avatar de O2drey
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Récupérer les données du jour dans une BDD et les importer dans la mienne
    Bonjour,

    Je suis débutante en matière de bases de données. J'aimerai savoir si c'est possible de récupérer dans une base de données les données d'une semaine de toutes les tables et de les importer dans ma base de données sans supprimer les données que j'ai déjà. J'avais déjà fait un import de cette bdd dans la mienne il y a quelques semaines. Les deux bdd sont sous phpmyadmin. J'ai "peur" de faire une bêtise et de supprimer/remplacer/écraser des données par erreurs surtout dans la première BDD qui n'est pas la mienne.

    Je vous remercie par avance pour votre attention

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 14
    Points : 19
    Points
    19
    Par défaut
    Lorsque tu es dans la BDD, dans l'onglet "export", tu as "export method" puis tu peux choisir "custom", il y a pas une option dedans qui permet de choisir la date ?

  3. #3
    Futur Membre du Club Avatar de O2drey
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Non, je ne vois pas d'options qui permettent de choisir la date (ou alors je n'en comprends pas le sens).

    J'ai tenté plusieurs requêtes afin de récupérer dans les tables des lignes où la date correspond à aujourd'hui et d'exporter ces résultats. Au moment de les importer dans ma propre bdd, je n'y arrive pas.
    Je n'ai pas forcément d'erreurs, mais les données ne s'importent pas dans ma table.
    Faut-il bien aller dans l'onglet importer (quand on est dans la table où l'on veut importer ces données) ? Est-il possible d'importer des données ?

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut O2drey.

    Vous n'avez pas précisé si vous le faites d'une manière ponctuelle ou à la demande ?

    Si c'est d'une manière ponctuelle, le mieux est de passer par l'onglet "export" de phpmyadmin.

    Si c'est à la demande, vous devez créer pour cela un script.
    Voici un exemple très basique (le source) :
    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
    START TRANSACTION;
     
    -- ==========================
    -- Base de Données `base_one`
    -- ==========================
     
    DROP DATABASE IF EXISTS `base_one`;
     
    CREATE DATABASE IF NOT EXISTS `base_one`
    	DEFAULT CHARACTER SET `latin1`
    	DEFAULT COLLATE       `latin1_general_ci`;
     
    USE `base_one`;
     
    -- ============
    -- Table `test`
    -- ============
     
    DROP TABLE IF EXISTS `test`;
     
    CREATE TABLE `test`
    ( `id`    integer unsigned  NOT NULL auto_increment primary key,
      `date`  date              NOT NULL,
      `lib`   char(255)         NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED;
     
    -- =====================
    -- Insertion dans `test`
    -- =====================
     
    INSERT INTO `test` (`date`, `lib`) VALUES
      ('2018-10-31', 'un'),
      ('2018-10-31', 'deux'),
      ('2018-10-31', 'trois'),
      ('2018-10-31', 'quatre'),
      ('2018-10-31', 'cinq'),
      ('2018-11-01', 'six'),
      ('2018-11-01', 'sept'),
      ('2018-11-01', 'huit'),
      ('2018-11-01', 'neuf'),
      ('2018-11-01', 'dix');
     
    -- =============
    -- Vidage `test`
    -- =============
     
    select * from `test`;
     
    commit;
     
    -- ==========================
    -- Base de Données `base_two`
    -- ==========================
     
    DROP DATABASE IF EXISTS `base_two`;
     
    CREATE DATABASE IF NOT EXISTS `base_two`
    	DEFAULT CHARACTER SET `latin1`
    	DEFAULT COLLATE       `latin1_general_ci`;
     
    USE `base_two`;
     
    -- ============
    -- Table `test`
    -- ============
     
    drop table if exists `test`;
     
    create table `test` like base_one.test;
     
    -- =====================
    -- Insertion dans `test`
    -- =====================
     
    insert into `test` (`date`,`lib`)
      select `date`,
             `lib`
     
        from  base_one.test
       where  date >= current_date();
     
    -- =============
    -- Vidage `test`
    -- =============
     
    select * from `test`;
     
    -- ===
    -- FIN
    -- ===
     
    COMMIT;
    Et le résultat à l'exécution :
    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
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base_one`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base_one`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    ( `id`    integer unsigned  NOT NULL auto_increment primary key,
      `date`  date              NOT NULL,
      `lib`   char(255)         NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO `test` (`date`, `lib`) VALUES
      ('2018-10-31', 'un'),
      ('2018-10-31', 'deux'),
      ('2018-10-31', 'trois'),
      ('2018-10-31', 'quatre'),
      ('2018-10-31', 'cinq'),
      ('2018-11-01', 'six'),
      ('2018-11-01', 'sept'),
      ('2018-11-01', 'huit'),
      ('2018-11-01', 'neuf'),
      ('2018-11-01', 'dix')
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+------------+--------+
    | id | date       | lib    |
    +----+------------+--------+
    |  1 | 2018-10-31 | un     |
    |  2 | 2018-10-31 | deux   |
    |  3 | 2018-10-31 | trois  |
    |  4 | 2018-10-31 | quatre |
    |  5 | 2018-10-31 | cinq   |
    |  6 | 2018-11-01 | six    |
    |  7 | 2018-11-01 | sept   |
    |  8 | 2018-11-01 | huit   |
    |  9 | 2018-11-01 | neuf   |
    | 10 | 2018-11-01 | dix    |
    +----+------------+--------+
    --------------
    commit
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base_two`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base_two`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    drop table if exists `test`
    --------------
     
    --------------
    create table `test` like base_one.test
    --------------
     
    --------------
    insert into `test` (`date`,`lib`)
      select `date`,
             `lib`
     
        from  base_one.test
       where  date >= current_date()
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+------------+------+
    | id | date       | lib  |
    +----+------------+------+
    |  1 | 2018-11-01 | six  |
    |  2 | 2018-11-01 | sept |
    |  3 | 2018-11-01 | huit |
    |  4 | 2018-11-01 | neuf |
    |  5 | 2018-11-01 | dix  |
    +----+------------+------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    Si vous avez des questions sur le script, n'hésitez pas.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Futur Membre du Club Avatar de O2drey
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour Artemus24,

    Je pensais le faire ponctuellement, mais le script m'intéresse beaucoup. Je n'ai jamais utilisé de script afin de traiter une base de données. Où dois-je l'utiliser ? Dans phpmyadmin ou ailleurs ?

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut O2drey.

    Les manipulations sont presque toujours une source d'erreur.
    Il vos mieux en faire le moins possible, d'où un script qui a été testé et que vous lancez à chaque fois que vous en avez besoin.

    Citation Envoyé par O2drey
    Où dois-je l'utiliser ? Dans phpmyadmin ou ailleurs ?
    Je suppose que vous êtes sous Windows.
    Je crée deux fichiers, l'un pour lancer le script SQL et l'autre, le script SQL.
    Voici le batch windows, celui qui va lancer le script SQL :
    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
    @echo off
     
    setlocal enableDelayedExpansion
     
    chcp 1252 > nul
     
    set PATH=.;F:\Wamp\bin\mysql\mysql8.0.13\bin\;%PATH%
     
    SET FIC=%~nx0
    SET FIC=%FIC:bat=sql%
     
    @echo.
    mysql < %FIC%  --verbose  --force
     
    endlocal
    @echo.
    pause
    exit
    Dans la ligne "set path", vous devez mettre le chemin vers votre serveur MySql.
    L'astuce que j'utilise ici, est de nommer le batch du même nom que le script SQL.
    Par exemple pour le batch "script.bat" et le script SQL "script.sql".
    Comme le préfixe est le même, vous différenciez vos fichiers par le suffixe, soit ".bat" pour le batch windows, soit ".sql pour le script SQL.
    Et voici un exemple de script sql :
    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
    START TRANSACTION;
     
    -- ======================
    -- Base de Données `base`
    -- ======================
     
    DROP DATABASE IF EXISTS `base`;
     
    CREATE DATABASE `base`
        DEFAULT CHARACTER SET `latin1`
        DEFAULT COLLATE       `latin1_general_ci`;
     
    use `base`;
     
    -- ============
    -- Table `test`
    -- ============
     
    DROP TABLE IF EXISTS `test`;
     
    CREATE TABLE `test`
    ( `id`    integer  unsigned  NOT NULL auto_increment primary key,
      `date`  date               NOT NULL,
      `time`  time               NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED;
     
    -- =====================
    -- insertion dans `test`
    -- =====================
     
    INSERT INTO `test` (`date`,`time`) VALUES
      ('2018-10-12','04:59:59'),
      ('2018-10-12','05:00:00'),
      ('2018-10-12','05:00:01'),
      ('2018-10-13','17:00:00'),
      ('2018-10-23','08:59:59'),
      ('2018-10-23','09:00:00'),
      ('2018-10-23','09:00:01');
     
    -- ================
    -- vidage de `test`
    -- ================
     
    select * from `test`;
     
    -- ===========
    -- Requête N°1
    -- ===========
     
    select  *
      from  `test`
     where  (`date` = '2018-10-12' and `time` >= '05:00:00')
        or  (`date` > '2018-10-12' and `date` <  '2018-10-23')
        or  (`date` = '2018-10-23' and `time` <  '09:00:00');
     
    -- ===
    -- Fin
    -- ===
     
    COMMIT;
    exit
    Et voic à l'exécution ce que cela donne :
    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
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
        DEFAULT CHARACTER SET `latin1`
        DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    ( `id`    integer  unsigned  NOT NULL auto_increment primary key,
      `date`  date               NOT NULL,
      `time`  time               NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO `test` (`date`,`time`) VALUES
      ('2018-10-12','04:59:59'),
      ('2018-10-12','05:00:00'),
      ('2018-10-12','05:00:01'),
      ('2018-10-13','17:00:00'),
      ('2018-10-23','08:59:59'),
      ('2018-10-23','09:00:00'),
      ('2018-10-23','09:00:01')
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+------------+----------+
    | id | date       | time     |
    +----+------------+----------+
    |  1 | 2018-10-12 | 04:59:59 |
    |  2 | 2018-10-12 | 05:00:00 |
    |  3 | 2018-10-12 | 05:00:01 |
    |  4 | 2018-10-13 | 17:00:00 |
    |  5 | 2018-10-23 | 08:59:59 |
    |  6 | 2018-10-23 | 09:00:00 |
    |  7 | 2018-10-23 | 09:00:01 |
    +----+------------+----------+
    --------------
    select  *
      from  `test`
     where  (`date` = '2018-10-12' and `time` >= '05:00:00')
        or  (`date` > '2018-10-12' and `date` <  '2018-10-23')
        or  (`date` = '2018-10-23' and `time` <  '09:00:00')
    --------------
     
    +----+------------+----------+
    | id | date       | time     |
    +----+------------+----------+
    |  2 | 2018-10-12 | 05:00:00 |
    |  3 | 2018-10-12 | 05:00:01 |
    |  4 | 2018-10-13 | 17:00:00 |
    |  5 | 2018-10-23 | 08:59:59 |
    +----+------------+----------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Futur Membre du Club Avatar de O2drey
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour, merci de ta réponse et désolée de ma réponse tardive, je n'avais plus mon ordinateur avec moi

    Quand tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set PATH=.;F:\Wamp\bin\mysql\mysql8.0.13\bin\;%PATH%
    si ma bdd est sur un serveur distant, est-ce que je mets l'url du serveur ? (je ne trouve pas le chemin d'accès à ma bdd dans mon projet symfony)

    merci par avance

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut O2drey.

    Le PATH c'est pour l'accès à votre base de données en local sur votre ordinateur.
    Ce que je vous ai communiqué, c'est un batch que vous exécutez sur votre ordinateur, là où se trouve votre serveur mysql.


    Si vous désirez accéder à votre base de données distants, vous devez faire un script php, en précisant les caractéristiques de votre connexion :
    --> url distant
    --> compte
    --> mot de passe
    --> nom de la base de données.
    --> et les options d'accès.

    Et d'utiliser la fonction php : mysqli_connect ou bien le faire en php pdo.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/02/2016, 14h11
  2. Réponses: 2
    Dernier message: 04/06/2014, 14h18
  3. Réponses: 2
    Dernier message: 06/12/2010, 16h23
  4. [AC-2003] Peut-on faire une mise à jour d'une BDD avec les données
    Par Xtine dans le forum Access
    Réponses: 10
    Dernier message: 29/03/2009, 18h26
  5. import d'une bdd avec les données dans phpmyadmin
    Par lodan dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/10/2006, 19h05

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