[RESOLU] Import/Export PhpMyAdmin

Eléphanteau du PHP | 21 Messages

25 août 2015, 09:32

Bonjour,

Après avoir exporter une table, l'avoir modifiée, et ensuite importée, le tout sous mon interface utilisateur PhpMyAdmin, j'ai cette erreur :

Code : Tout sélectionner

#1136 - Column count doesn't match value count at row 1
Je comprend le message, il semble me signaler que mon nombre de colonne n'est pas le même que celui du document d'origine, sauf que ce n'est pas le cas. J'ai juste modifié les valeurs du contenu d'une colonne, en respectant le nombre de ligne, et sans rajouter de colonne.

J'ai testé, un export/import sans modifié mon document, mais il me sort tout de même la même erreur.

Est-ce un problème connu sous PhpMyAdmin ?

Merci pour votre aide.

Cordialement,
Stéphane

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

25 août 2015, 11:57

Bonjour,

Non ce n'est pas un problème de phpMyAdmin mais bien un problème de ta modif.
Cela arrive quand tu essaye de faire rentrer plus de VALUES() que de colonnes existantes dans ta table, ou au contraire moins de valeurs que de nombre de colonnes indiquées.

Tu as probablement une guillemet non échappée ou un copier-coller raté.

Essaye d'identifier la ligne qui pose problème en faisant plusieurs essais.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 21 Messages

25 août 2015, 12:21

Je comprend bien le message d'erreur, sauf que lorsque j'exporte ma table, et que je l'importe sans y avoir touché, ni même ouvert le fichier, j'ai la même erreur ...

Eléphant du PHP | 130 Messages

26 août 2015, 12:40

Tu fais un import en sql ou en csv.
L'encodage n'est pas modifié quand tu ouvres ton fichier ?

Eléphanteau du PHP | 21 Messages

26 août 2015, 12:58

Bonjour,

L'import/export est en CSV. Dans le cas où j'ouvre le fichier, je retrouve bien mes colonnes, pas une de plus, pas une de moins.

Sinon, pourquoi lorsque je fait l'export, et que je fait aussitôt l'import, j'ai le même message d'erreur, à savoir qu'il y a un problème de colonne ?

C'est le CSV qui pose problème ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

26 août 2015, 15:19

A voir quel est le séparateur utilisé pour le CSV, mais si il y a un problème, il est possible que celui-ci se retrouve dans un de tes champs texte et que ça fasse buguer l'import/export.

Quoiqu'il en soit, je te déconseille le format CSV qui est un héritage ancien des premiers système informatique.
Il st largement préférable d'utiliser un export SQL
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 21 Messages

26 août 2015, 15:22

Merci pour ce retour.

L'idée était de pouvoir modifier un maximum de champs de manière simple.

J’essaie en SQL, car j'ai plus de 1300 lignes à modifier ...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

26 août 2015, 15:44

Qu'est-ce que tu veux faire comme modification ?

Si c'est du rechercher/remplacer, ça se fera aussi simplement avec un fichier .sql, si c'est plus complexe, tu peux le faire normalement directement avec des requête SQL.
C'est un peu plus rude à prendre en main au début mais c'est beaucoup plus puissant.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 21 Messages

26 août 2015, 15:50

Artur,

En fait je galère depuis la semaine dernière pour modifier le contenu texte d'une colonne entière, soit 1400 lignes.

J'ai posté ma demande ici

viewtopic.php?f=3&t=274346&e=1&view=unread#unread

Mais je n'ai pas réussi, via une requête via l'interface utilisateur de PhpMyAdmin, à modifier l'ensemble de ma colonne ...

Peut-être avez vous d'autres pistes ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

26 août 2015, 16:42

Ah... effectivement, je n'avais pas fait le lien entre tes deux sujets.

Bah c'est toujours de la bidouille ton système...
Est-ce que tu as pu exporter la colonne avec le texte original ?

Si oui, voila une solution "quick& dirty" mais qui devrait fonctionner :
- Ouvre un nouveau fichier Excel
- Dans la colonne B tu copie-colles toutes tes traductions
- Dans la colonne D, tu copie-colles le texte original tel qu'il est présent dans ta base actuelle
=> Attention, désormais chaque ligne doit correspondre à son mot traduit.

Ensuite :
- dans la case A1, tu mets

Code : Tout sélectionner

UPDATE `wp_translation_fr` SET `translation` = '
et tu prend la poignée en bas à droite de la case pour répliquer ce texte jusqu'en bas de ton tableau dans toute la colonne A
- dans la case C1, tu mets

Code : Tout sélectionner

WHERE `translation`='
et idem jusqu'au bas
- dans la case E1, tu mets (attention c'est un guillemet simple tapé 2 fois et pas une guillemet double, et tu tires jusqu'au bas.

Ensuite tu fais un copié-collé de tous ton tableau dans un éditeur de code (Par exemple Scite : http://www.scintilla.org/SciTEDownload.html )
Tu n'as plus qu'à supprimer toutes les tabulations et tu auras un beau fichier SQL prêt à l'emploi dans phpMyAdmin pour mettre à jour ta table.
Pour supprimer les tabulations dans Scite, il faut faire Search > Replace...
Find what : "\t" (sans les guillemets)
Replace with : (laisser vide)
et cocher la case "Transform backslash expressions"

:arrow: Commence à le faire uniquement sur 3 mots à traduire et quand ce sera fait tu le ferras sur les 1400
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 21 Messages

02 sept. 2015, 11:53

@rthur, un grand merci pour ton aide.
Cela a bien fonctionné.

Merci beaucoup