Insertion de plusieurs lignes dans une colonne

Eléphanteau du PHP | 21 Messages

06 août 2015, 11:17

Re,

Pour ma part ceci fonctionne bien :

Code : Tout sélectionner

BEGIN DECLARE v1 INTEGER DEFAULT 5; WHILE v1 > 0 DO INSERT into matable(id,nom) values ("",v1); SET v1 = v1 - 1; END WHILE; END
Mega
;)
Dans mon cas cela ressemble à quoi en passant toute mes valeurs ?

A cela ?

Code : Tout sélectionner

BEGIN DECLARE v1 INTEGER DEFAULT 5; WHILE v1 > 0 DO INSERT into`wp_translation_fr`(`translation`) VALUES ('Paramètres - PayPal'), ('Permettre le paiement PayPal'), ('Activer PayPal paiement par carte de crédit'), ('PayPal nom d utilisateur de l API'), ('PayPal mot de passe API'), ('PayPal signature API'), ('Activer PayPal bac à sable'), ('API PayPal nom d utilisateur sandbox'), ('PayPal passe API sandbox'), ('PayPal signature API sandbox'), ('activer restitutions'), etc ... ('position'), ('résumé'), ('Tabs'), (V1);

Mammouth du PHP | 737 Messages

07 août 2015, 09:36

Re,

Non pas exactement. Si tu veux tout mettre dans la même colonne c'est plutôt ça :

Code : Tout sélectionner

INSERT into wp_translation_fr (translation) values ('Paramètres - PayPal, Permettre le paiement PayPal...');
si tu as plusieurs colonnes

Code : Tout sélectionner

INSERT into wp_translation_fr (translation, position, resume, tabs) values ('Paramètres - PayPal, Permettre le paiement PayPal...','postion_blablabla','ton_resume','tabs_que_tu_veux');
Mega
;)
Dyslexics are teople poo

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 août 2015, 10:04

En fait je crois qu'on a du mal à comprendre ce que tu veux faire.
Tu as 1 table avec 1 colonne et tu veux insérer tes valeurs comme autant de lignes c'est bien ça ?

Si oui, le code d'Ascla est correct : post437801.html#p437801
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 21 Messages

07 août 2015, 10:14

Pour résumé, j'ai une table qui se nomme 'wp_translation_fr'. Dans cette table j'ai plusieurs champs (colonnes), avec déjà des valeurs.
Je souhaite donc modifier toutes les lignes d'une seule colonne qui est 'translation'.

Je viens de tester cela :

Code : Tout sélectionner

INSERT INTO `wp_translation_fr`(`translation`) VALUES ('Paramètres - PayPal', 'Permettre le paiement PayPal', 'Activer PayPal paiement par carte de crédit', 'PayPal nom d utilisateur de l API', 'PayPal mot de passe API', 'PayPal signature API', 'Activer PayPal bac à sable', .... 'aucune réservation', 'WooCommerce - Aide', 'Sélectionnez le calendrier que vous voulez associée unique avec ce produit.', 'Sélectionnez la langue pour le calendrier.', 'Sélectionnez la position du calendrier. Ajouter dans «Récapitulatif de produit», «onglets de produit» ou ajouter la forme en «résumé» et le calendrier des «onglets de produit».');
Et j'ai le message d'erreur suivant :

Code : Tout sélectionner

#1136 - Column count doesn't match value count at row 1

Mammouth du PHP | 737 Messages

07 août 2015, 10:30

Non si tu veux mettre toutes les valeurs dans translation tu dois faire ceci :

'Paramètres - PayPal Permettre le paiement PayPal Activer PayPal paiement par carte de crédit PayPal nom d utilisateur de l API PayPal mot de passe API...' (une quote au début et une quote à la fin pour une colonne)

C'est bien ce que tu veux ? Tu peux intégrer un caractère comme énoncé au début pour spliter toute la chaine exemple avec un pipe

Paramètres - PayPal | Permettre le paiement Paypal | ... ou toute autre caractère. tu peux rester sur ta virgule si tu penses que tes items n'en contiendront pas.

Mega
;)
Dyslexics are teople poo

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 août 2015, 10:41

Je souhaite donc modifier toutes les lignes
Ahhhh je comprends maintenant ce que tu cherches à faire !

Bah la réponse est simple alors : ce n'est pas possible :D Ou en tout cas pas comme tu souhaites le faire.

Pour mettre à jour une ligne, il faut que tu indiques quelle ligne tu veux mettre à jour
UPDATE `wp_translation_fr` SET `translation` = 'Paramètres - PayPal' WHERE id=1;
UPDATE `wp_translation_fr` SET `translation` = 'Permettre le paiement PayPal' WHERE id=2;

Il est techniquement possible de faire ça en une seule requète avec des CASE ... WHEN... THEN, mais c'est plus compliqué, si il y a une erreur, tu auras + de mal à debuguer et je ne vois pas d'intérêt
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 21 Messages

07 août 2015, 10:58

Ok

En fait j'ai plus de mille lignes à modifier, donc trop galère.
Par contre, j'ai essayé d'exporter ma table sous Excel pour modifier ma colonne.
Pas de problème et plus facile donc, sauf que au moment de 'importation il y a une erreur.

Il y a enregistrement particulier à faire pour l'importation d'un fichier Excel ?

Eléphanteau du PHP | 21 Messages

07 août 2015, 11:09

J'ouvre ma table sous forme de tableau sous Excel.
Je modifie les valeurs de ma colonne.
Ensuite j'enregistre sous quel format pour l'importation :
csv (séparateur: point-virgule) ou
csv (DOS)

C'est la prise de tête ...

Mammouth du PHP | 737 Messages

07 août 2015, 11:14

csv point virgule.

sinon c'est bien ce que @rthur a expliqué, ce que tu veux faire ?
Dyslexics are teople poo

Eléphanteau du PHP | 21 Messages

07 août 2015, 11:27

Oui, @rthur a bien compris, je veux modifier toutes les lignes, sauf que j'en ai plus de mille ...

Et il me semblait éventuellement possible de faire une boucle, mais je ne trouve pas la syntaxe ...

Eléphanteau du PHP | 21 Messages

07 août 2015, 11:33

Sinon, pour l'export, est-ce que je peux récupérer en CSV for MS Excel

Cela me permet de l'ouvrir au format tableau.

Dans ce cas, si je l'importe quel est le format CSV à choisir ....

Eléphanteau du PHP | 21 Messages

10 août 2015, 09:03

Je ne m'en sort pas ...

J'ai essayé de modifier ma table sous Excel, mais cela ne fonctionne pas non plus lorsque je l'importe.

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

Code : Tout sélectionner

#1136 - Column count doesn't match value count at row 1
Alors que je n'ai rien modifier, c'est le fichier original ...

Je suis sous PhpMyAdmin.

Est-ce une erreur connu ?

Merci pour votre aide