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

PHP & Base de données Discussion :

importation via phpmyamin


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    je gère le site d'une association
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : je gère le site d'une association
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 4
    Points
    4
    Par défaut importation via phpmyamin
    Bonjour,
    Mes connaissances en matière de BdD avancent à pas de loup.
    Mais bon, j'en suis à tenter d'importer un fichier "xlsx" dans une table de ma base de donnée.
    Compte tenu du fait qu'il n'y a pas d'option d'importation de fichier "xlsx", j'ai tenté le coup avec une conversion de mon fichier "xlsx" en "csv"... cela ne fonctionne pas.
    J'ai donc converti mon fichier "xlsx" en document "ods" (qui est l'une des formes autorisées dans phpmyadmin) et ... ma table était complétée par les données de nos membres.
    Sauf que la colonne id (clé primaire) était vide ainsi que celle contenant les adresses email de nos membres.
    D'où mes questions :
    une colonne destinée recevoir des adresses email doit-elle contenir des données d'un "type" particulier (moi j'avais mis "varchar") ?[/LIST]
    une colonne "id" (clé primaire) doit-elle contenir des données d'un "type" particulier ?

    Je suis les instructions d'un bouquin intitulé "PHP & MySQL pour les nuls", mais je dois être plus nul que nul !!! ou je vais plutôt chercher d'autres sources d'information, sur votre site.

    D'avance merci pour votre collaboration.

    André
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Citation Envoyé par loustalou1 Voir le message
    une colonne destinée recevoir des adresses email doit-elle contenir des données d'un "type" particulier (moi j'avais mis "varchar") ?
    varchar est le type adapté adapté pour une colonne qui stocke des adresses mail.

    Citation Envoyé par loustalou1 Voir le message
    une colonne "id" (clé primaire) doit-elle contenir des données d'un "type" particulier ?
    Très souvent on utilise un nombre entier auto incrémenté (comme c'est le cas sur la table "membre"), lors de l'insertion il n'est pas nécessaire de préciser une valeur car c'est MySQL qui la choisira en fonction des valeurs déjà utilisées (sauf si la table est vidée sans réinitialiser la valeur de l'AUTO_INCREMENT).

    Citation Envoyé par loustalou1 Voir le message
    Mais bon, j'en suis à tenter d'importer un fichier "xlsx" dans une table de ma base de donnée.
    Compte tenu du fait qu'il n'y a pas d'option d'importation de fichier "xlsx", j'ai tenté le coup avec une conversion de mon fichier "xlsx" en "csv"... cela ne fonctionne pas.
    J'ai donc converti mon fichier "xlsx" en document "ods" (qui est l'une des formes autorisées dans phpmyadmin) et ... ma table était complétée par les données de nos membres.
    Sauf que la colonne id (clé primaire) était vide ainsi que celle contenant les adresses email de nos membres.
    Je pense que le format CSV est préférable car il ne contient que du texte (attention par contre à l'encodage lors de l'export depuis le .xlsx, le plus simple étant d'utiliser partout UTF-8).
    Dans phpMyAdmin, il faut préciser les options spécifiques au format, c'est à dire les caractères de séparation des colonnes, etc... mais aussi il est surtout possible de lister le nom des colonnes dans le cas où les colonnes du fichier CSV ne soient pas dans le même ordre que celle de la table en base.
    Après si besoin voici un tutoriel vidéo (en anglais) qui date un peu mais qui montre comment à partir d'un fichier .xlslx générer un .csv et l'importer dans une table contenant déjà des données :

  3. #3
    Candidat au Club
    Homme Profil pro
    je gère le site d'une association
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : je gère le site d'une association
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Merci Thomas pour cette prompte et fructueuse intervention.

    André

  4. #4
    Candidat au Club
    Homme Profil pro
    je gère le site d'une association
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : je gère le site d'une association
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    J'ai encore une question concernant l'importation de données dans la table de la base de données.
    Lors de l'importation des données je reçois un message d'erreur m'indiquant que le nombre de colonnes du fichier ".csv" ne correspond pas à celui de la table.
    Faut-il que ce nombre soit exactement le même ? Et dans l'affirmative doit-elle être vide dans le fichier ".csv", ou la colonne "id" (clé primaire) ne doit-elle exister que dans la table. J'ai essayé plusieurs options mais cela ne fonctionne pas.
    Dans certains cas, j'ai le message d'erreur "nombre de colonnes différent", et dans d'autres cas la colonne "id" de la table reste désespérément vide.

    D'avance merci pour votre soutien.

    André

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Oui il faut que le .csv contienne le même nombre de colonne que la table de la base de données.

    Je viens de faire un essai avec un CSV contenant les colonnes suivantes : id, champ1, champ2, champ3
    Seules les colonnes des champs ont des valeurs, la colonne id est vide, lors de l'import dans une table (id, champ1, champ2, champ3), les données s'importe correctement et les id sont correctement auto-générés par MySQL.

    Donc le plus simple c'est de laisser vide la colonne id et/ou les colonnes/cellules qui n'ont pas de valeur tout en aillant le même nombre de colonne entre le .csv et la table (l'ordre peut être modifié lors de l'import via l'option "Nom des colonnes).

  6. #6
    Candidat au Club
    Homme Profil pro
    je gère le site d'une association
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : je gère le site d'une association
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Une fois encore... merci Thomas. Je vais essayer.

  7. #7
    Candidat au Club
    Homme Profil pro
    je gère le site d'une association
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : je gère le site d'une association
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour Thomas et les autres,

    j'ai suivi les indications et ça marche !
    Par contre, je crée une nouvelle "table" reprenant les diverses compétitions auxquelles nos membres peuvent s'inscrire, Mais je ne peux modifier les lignes du "résultat".
    Un message m'indique que : La sélection courante ne contient pas de colonne unique. Je ne vois pas ce dont il s'agit. Pourtant, je souhaiterais modifier plusieurs ligne car la date, de certains événement, ne s'affiche pas.
    Dans le fichier à importer, les dates sont au format jj-mm-aaaa et SQL souhaite des dates au format aaaa-mm-jj.
    J'ai déjà tout essayé (en fin je crois), mais dès qu'on enregistre le bon format de date (en format CSV) et ferme le fichier, à la réouverture du fichier, la modification du format des dates a disparue et je me retrouve avec des dates au format jj-mm-aaaa !
    J'utilise "Office 2010" et j'ai consulté le forum de Microsoft où je n'ai, malheureusement pas trouvé la solution.

    Merci pour votre patience.

    André
    Fichiers attachés Fichiers attachés

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Salut,

    Il doit manquer une contrainte de type "clé primaire" sur la table en question, clique sur l'onglet "Structure", édite la structure actuelle et ajoute/coche la contrainte "clé primaire" (primary key, PK) sur ta colonne "id" puis sauvegarde. Ça devrait faire apparaître les boutons de modifications des données présentes dans la table.

    Concernant le format des dates, dans le fichier Excel source, formate les dates :
    - sélectionne la colonne des dates
    - clic droit sur la première cellule
    - format de la cellule
    - Personnalisée
    - clic par exemple sur jj/mm/aaaa
    - dans le champ "Type" remplace "jj/mm/aaaa" par "aaaa-mm-jj" puis clic sur OK

    Ça devrait formater correctement toutes les dates sélectionnées, ensuite enregistre sous au format CSV pour générer un nouveau fichier d'import et normalement dans celui-ci les dates seront formatées en aaaa-mm-jj (pour le vérifier tu peux ouvrir le .csv avec un éditeur de texte Bloc-notes/notepad++).

  9. #9
    Candidat au Club
    Homme Profil pro
    je gère le site d'une association
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : je gère le site d'une association
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour Thomas,

    Merci pour ton aide.
    Le problème de la table est solutionné
    Quant aux dates, j'avais déjà mis ta solution en œuvre. Je sauve le fichier ".xlsx" sous le format "CSV(séparateur:point-virgule) (*csv)". Mais une fois le fichier fermé et ré-ouvert, les dates sont à nouveau au format jj-mm-aaaa. Lors de la réouverture du fichier ".csv" le système m'indique qu'il s'agirait d'un fichier "SYLK" ???
    Je continue à chercher une solution... il doit bien il y en avoir une

    Merci encore pour tout

    André

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Citation Envoyé par loustalou1 Voir le message
    Mais une fois le fichier fermé et ré-ouvert, les dates sont à nouveau au format jj-mm-aaaa. Lors de la réouverture du fichier ".csv" le système m'indique qu'il s'agirait d'un fichier "SYLK" ???
    Ré-ouverture avec quel logiciel, Excel ? Normalement le "Enregustrer sous" + "CSV" devrait générer un fichier .csv et pas un SYLK.
    Est-ce que les autres colonnes contiennent des valeurs particulières ? (non textuelles, fortement formatées, etc)

  11. #11
    Candidat au Club
    Homme Profil pro
    je gère le site d'une association
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : je gère le site d'une association
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Rebonjour Thomas,

    Je viens de vérifier quelque chose.
    Lorsque je convertis un dossier "xls" en "csv" et que je le visualise avec "Notepad" les dates de naissances sont au format aaaa-mm-jj.
    Pourtant quand j'ouvre ce même fichier avec Excel, les dates sont au format jj-mm-aaaa. Et quand j'utilise, toujours ce même fichier ".csv" pour alimenter ma "table", dans la colonne "date de naissance" de la table je n'ai que des
    0000-00-00 (mais donc bien au format aaaa-mm-jj).
    Je n'abandonne pas, je continue à chercher !!!

    André

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Dans l'onglet "Structure" de la table dans phpMyAdmin, quel est le type MySQL de la colonne qui contient les dates ??

  13. #13
    Candidat au Club
    Homme Profil pro
    je gère le site d'une association
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : je gère le site d'une association
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour Thomas,

    J'ai choisi "date", cela me semblait le plus logique.

    Bien cordialement

    André
    Fichiers attachés Fichiers attachés

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Salut,

    C'est un problème de type en fait, le CSV contient uniquement des chaînes de caractères donc pour importer les dates il faudrait utiliser une fonction pour convertir les valeurs textuelles en "vraies" dates.
    Sinon tu peux aussi changer temporairement le type de la colonne en varchar(10), importer le fichier CSV puis remettre le type date une fois l'import terminé.

Discussions similaires

  1. Problèmes d'importation via DTS de Sql server2000
    Par bigey3 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/01/2008, 16h20
  2. [FTP] Export et Import via FTP distant
    Par npirard dans le forum Langage
    Réponses: 1
    Dernier message: 11/09/2007, 20h39
  3. export import via TOAD
    Par big1 dans le forum Toad
    Réponses: 0
    Dernier message: 21/08/2007, 16h08
  4. importation via excel
    Par pat1545 dans le forum Access
    Réponses: 4
    Dernier message: 02/08/2006, 16h24
  5. Importer via asp.net c# des variables dans mon namespace xsl
    Par akaii dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/01/2006, 08h41

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