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 :

Lien hypertexte dans Excel vers MySQL


Sujet :

MySQL

  1. #1
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut Lien hypertexte dans Excel vers MySQL
    Bonjour à tous
    Quelqu'un pourrais m'aider svp,
    j'ai une question, voila j'ai un fichier Excel qui qui contient un lien vers une image, je veux l'importer dans mysql.
    dans le load data infile je sevrai normalement convertir mon varchar (car sur Excel j'ai un lien comme ceci : C:\\Stage\\Oly.png )
    voila mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    LOAD DATA LOCAL INFILE 'C:\\Stage\\Essai1.csv'
    INTO TABLE `base_configuration`.`OLY`
    CHARACTER SET utf8
    FIELDS TERMINATED BY ';'
    ENCLOSED BY '"'
    ESCAPED BY '\\' LINES
    TERMINATED BY '\r\n'
    IGNORE 1 LINES
    (@F1, @F2, @F3, @F4, @F5,@F19, @F20,@F21) 
    set picture= CAST(@F19 as blob )
    sachant que dans ma table Oly j'ai 22 colonnes.
    je veux convertir mon lien picture de varchar à blob mais il me dit erreur de syntaxe .
    Merci de votre aide.

  2. #2
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    J'ai répondu à ma question, finalement j'ai gardé le type VARCHAR en important mon fichier Excel et dans la table image j'ai inséré le chemin et le contenu de l'image comme ceci et ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into base_configuration.image(image, nom_image)
    SELECT DISTINCT load_file(t.picture)  AS image,
    t.picture as nom_image
    from `base_configuration`.`OLY` t;
    Merci

  3. #3
    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 381
    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 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut Coeur de Pirat.

    Tout dépend de ce que tu veux faire.
    Afin d'éviter des problèmes d'intégrités, il vaut mieux charger l'image que le lien dans la table.
    Sinon, que se passe-t-il si le fichier image vient à disparaître alors que le lien existe toujours ?

    Pour le lien, le type est bien "varchar(255)".
    Pour l'image, en effet, c'est un "blob" (binary large object) qu'il faut utiliser.
    Enfin, ça dépend aussi de la taille de ton image, d'où : tinyblob, blob, mediumblob et longblob.
    --> http://dev.mysql.com/doc/refman/5.7/...uirements.html

    Il existe deux solutions pour charger une image, soit en php, soit en MySql. A lire :
    --> http://beaussier.developpez.com/arti...hp/mysql/blob/
    --> http://dev.mysql.com/doc/refman/5.7/...tion_load-file

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

  4. #4
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Bonjour Artemus 24,

    Je voulais dans le load data infile ajouter un set pour la colonne picture et lui dire de convertir la chaine de caractére en un BLOB mais ça ne marchais pas !
    Merci pour ces infos, je vais regarder ça , pour l'image , c'est un type BLOB donc , au moment d’insérer une image , le chemin vers l'image (Varchar) devient un BLOB forcément car dans ma table image(id, nom_image, image) j'ai (int, varchar, blob).
    Mercii

  5. #5
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Artemus24,
    Est ce que t'aurai une piste à me donner pour une condition dans un script .bat,
    Voila , je veux lui dire de faire la différence entre les types de fichier dans mon script batch et dans mon script sql, car j'ai un fichier qui contient des traducteurs et un autre des Sabots.
    au lieu d'avoir plusieurs .bat avec chacun son nom.
    Merci bien
    Cordialement,

  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 381
    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 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut coeur de pirat.

    Citation Envoyé par coeur de pirat
    Je voulais dans le load data infile ajouter un set pour la colonne picture et lui dire de convertir la chaine de caractére en un BLOB mais ça ne marchais pas !
    Déjà tu mélanges deux notions différentes :
    --> la chaîne de caractères qui est de type "varchar(255)".
    --> l'image à charger qui est du binaire. Donc le type à utiliser est bien un "blob", c'est-à-dire un "binary large object".

    Si tu veux mettre l'image directement dans le blob, sans passer par le insert, il suffit de reporter ce que tu fais dans le insert et tu le mets dans un "set".
    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
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS test
    --------------
     
    --------------
    CREATE TABLE test (
      `id`           smallint unsigned AUTO_INCREMENT NOT NULL PRIMARY KEY,
      `largeur`      integer  unsigned                NOT NULL,
      `longueur`     integer  unsigned                NOT NULL,
      `description`  varchar(255)                     NOT NULL,
      `lien`         varchar(255)                     NOT NULL,
      `image`        longblob                             NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    LOAD DATA LOCAL INFILE 'E:\\22.MySql\\40.Load\\Ex_91\\Fichier.txt'
         INTO TABLE `test`
         CHARACTER SET latin1
         FIELDS TERMINATED            BY ';'
                OPTIONALLY ENCLOSED   BY '\"'
                ESCAPED               BY '\\'
         LINES  TERMINATED            BY '\r\n'
         IGNORE 0  LINES
             (@1,@2,@3,@4)
         set largeur     = trim(@2),
             longueur    = trim(@3),
             description = trim(replace(@1, '"', '')),
             lien        = trim(replace(@4, '"', '')),
             image       = load_file(lien)
    --------------
     
    --------------
    select id, largeur, longueur, description, lien, length(image) from test
    --------------
     
    +----+---------+----------+----------------+------------------------------------+---------------+
    | id | largeur | longueur | description    | lien                               | length(image) |
    +----+---------+----------+----------------+------------------------------------+---------------+
    |  1 |    1280 |     1024 | Un chat mignon | E:\22.MySql\40.Load\Ex_91\Chat.jpg |         30800 |
    +----+---------+----------+----------------+------------------------------------+---------------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Je n'affiche pas l'image car sous la console windows, c'est illisible. Mais j'indique la taille de cette image.

    Citation Envoyé par coeur de pirat
    Voila , je veux lui dire de faire la différence entre les types de fichier dans mon script batch et dans mon script sql, car j'ai un fichier qui contient des traducteurs et un autre des Sabots.
    Rien compris ! Une différence en terme de quoi ?

    Sinon, sous batch windows, tu peux faire un "file compare" :
    Code batch : 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
    Microsoft Windows [version 10.0.10586]
    (c) 2015 Microsoft Corporation. Tous droits réservés.
     
    C:\Users\Patron>help fc
    Compare deux fichiers ou ensembles de fichiers et affiche les différences
    entre eux.
     
     
    FC [/A] [/C] [/L] [/LBn] [/N][/OFF[LINE]][/T] [/U] [/W] [/nnnn]
       [lect1:][chemin1]fichier1 [lect2:][chemin2]fichier2
    FC /B [lect1:][chemin1]fichier1 [lect2:][chemin2]fichier2
     
      /A         Affiche la 1ère et dernière ligne de chaque ensemble de
                 différences.
      /B         Effectue une comparaison binaire.
      /C         Ignore la casse.
      /L         Compare les fichiers en tant que texte ASCII.
      /LBn       Définit le nombre maximal de différences consécutives comme égal
                 au nombre de lignes spécifié.
      /N         Affiche les numéros de ligne pour une comparaison ASCII.
      /OFF[LINE] Ne pas ignorer les fichiers dont l’attribut hors connexion a été
                 réglé.
      /T         Ne convertit pas les tabulations en espaces.
      /U         Compare les fichiers en tant que fichiers texte UNICODE.
      /W         Comprime les blancs (tabulations et espaces) pour la comparaison.
      /nnnn      Spécifie le nombre de lignes consécutives qui doivent
                 correspondre après une différence.
      [lect1:][chemin1]fichier1
                 Spécifie le premier fichier ou ensemble de fichiers à comparer.
      [lect2:][chemin2]fichier2
                 Spécifie le second fichier ou ensemble de fichiers à comparer.
     
     
    C:\Users\Patron>

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

  7. #7
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Salut,
    l'image à charger qui est du binaire. Donc le type à utiliser est bien un "blob", c'est-à-dire un "binary large object".
    Je sais bien, mais justement je mets le type Varchar pour que j'ai en dur le lien hypertexte et au moment ou j’insère la colonne 'picture' dans la table image, il y'aura bien le contenu de l'image. et finalement le load data infile ne change pas .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into base_configuration.image(image, nom_image)
    SELECT DISTINCT load_file(t.picture)  AS image,
    t.picture as nom_image
    from `base_configuration`.`OLY` t;
    et voila la table OLY :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Create TABLE IF NOT EXISTS base_configuration.oly(
     base_configuration.OLY.id INT(11) NOT NULL AUTO_INCREMENT,
     base_configuration.OLY.Manufacturer_name VARCHAR(45) NULL DEFAULT NULL, 
     base_configuration.OLY.Model_Number VARCHAR(45) NULL DEFAULT NULL,
     base_configuration.OLY.Serial_Number VARCHAR(45) NULL DEFAULT NULL,
     base_configuration.OLY.Picture VARCHAR(250) NULL DEFAULT NULL,
     PRIMARY KEY (id))
     ENGINE = InnoDB
     DEFAULT CHARACTER SET = utf8;
    et voici le résultat :
    Nom : Capture.PNG
Affichages : 165
Taille : 10,0 Ko

  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 381
    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 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut Coeur de Pirat.

    Tu as l'art de te compliquer l'existence !
    Tu dis : "Je sais bien", mais j'ai l'impression que tu n'as pas du tout compris.

    Un lien, c'est une chaîne de caractères. Une image, c'est du binaire.
    Donc si tu mets le lien dans une colonne de type "varchar", c'est bien.
    Mais si par la suite, tu mets dans cette même colonne, une image, ce n'est pas bien.

    Il n'y a pas trente-six solutions, soit :
    --> tu ajoutes une colonne de type "varchar" pour le lien et une autre colonne de type "blob" pour l'image, et tu fais le chargement de l'image dans ton insert.
    --> tu ajoutes uniquement une colonne de type "blob" pour l'image, et tu fais le chargement dans le "load data local infile".

    Donc ne vient pas mettre une image dans une chaîne de caractères car ce n'est pas la bonne démarche à faire.
    Et je ne comprends pas pourquoi est-ce si compliqué pour toi, de faire ainsi ?

    Citation Envoyé par Coeur de Pirat
    Je voulais dans le load data infile ajouter un set pour la colonne picture et lui dire de convertir la chaine de caractére en un BLOB mais ça ne marchais pas !
    J'ai répondu à cette question dans mon post #6. As-tu pris le temps de voir ce que j'ai fait ?

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

  9. #9
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Effectivement, je complique trop les choses , au même temps j'ai un problème de communication.
    C'est bien ce que j'ai fait oui.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liens Hypertexte dans excel
    Par rondepierre dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/03/2011, 17h45
  2. Inserer lien hypertext dans excel grace a visual studio
    Par loke74150 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 07/07/2010, 00h01
  3. [AC-2000] Liens hypertexte d'Excell vers Access
    Par AdrienHeiser dans le forum Modélisation
    Réponses: 5
    Dernier message: 29/05/2009, 23h57
  4. creation de lien hypertexte dans excel en vb
    Par dav81 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/09/2006, 14h16
  5. Exporter un lien hypertexte d'Excel vers Access
    Par SlySylvain dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/07/2006, 17h46

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