Besoin d'aide pour csv et BDD

Fermé
coffy Messages postés 4 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 5 novembre 2012 - 2 nov. 2012 à 12:50
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 5 nov. 2012 à 12:36
Bonjour à tous,


j'ai un fichier excel (.csv) avec des information tel que : indicatif numéro de téléphone, nom du pays, prix minute sur fixe, prix minute sur mobile etc...

avec un texte répétitif où il suffit juste de remplacer les informations précédentes ( exemple le prix sur fixe pour #nom du pays est de #prix et #prix sur mobile est de #prix_mobile etc...)

et après envoyé tout cela sur la BDD sans écraser celle déjà présente, juste la compléter

J'espère être clair, si il faut plus d'informations n' hésité pas à poser de questions

merci
A voir également:

8 réponses

jee pee Messages postés 40277 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 septembre 2024 9 348
2 nov. 2012 à 13:25
Salut,

Je ne connais pas particulièrement mysql.

Je te conseille de procéder en 2 étapes, charger le fichier csv dans une table temporaire, et après en sql mettre à jour la table de prod à partir de la table temporaire.

Pour importer un .csv voilà ce que j'ai trouvé : https://dev.mysql.com/doc/refman/8.0/en/load-data.html

cdlt

0
coffy Messages postés 4 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 5 novembre 2012
Modifié par coffy le 2/11/2012 à 14:38
ok mais il y a toujours le souci de taper à chaque fois le même texte et de ne changer que les #nom pays, #prix etc..., c'est simple quand on a une dizaine mais la j'en ai une centaine
0
jee pee Messages postés 40277 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 septembre 2024 9 348
Modifié par jee pee le 2/11/2012 à 14:54
Non, tu ne redevrais pas avoir à le taper.

La commande update en sql est faite pour cela. Tu peux ne mettre à jour que la colonne tarif.


Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
coffy Messages postés 4 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 5 novembre 2012
4 nov. 2012 à 01:47
je pense que c'est pas encore clair, j'ai un texte (toujours le même) où je doit modifier à chaque fois le nom du pays, les prix etc...

exemple :

Lorem ipsum dolor sit amet, consectetur #NOMPAYS nvallis consectetur. Sed tincidunt, dolor eget cursus adipiscing, nisl metus condimentum felis, in commodo nibh orci vitae nibh. Pellentesque #PRIX sollicitudin vulputate. In quis sem sed nunc dictum imperdiet id non nisi. Nunc et nunc eget quam vehicula congue at id massa.


Ce texte modifié est mis dans un champ d'une table, qui contient d'autre champ comme le code pays, le code prix etc... à compléter à chaque fois aussi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jee pee Messages postés 40277 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 septembre 2024 9 348
Modifié par jee pee le 4/11/2012 à 12:44
Tu mets le texte dans l'update

update table t
set (description, nompays, prix) =
( select 'Lorem ipsum dolor sit amet, consectetur '||e.NOMPAYS||' nvallis consectetur. Sed tincidunt, dolor eget cursus adipiscing, nisl metus condimentum felis, in commodo nibh orci vitae nibh. Pellentesque '||e.PRIX||' sollicitudin vulputate. In quis sem sed nunc dictum imperdiet id non nisi. Nunc et nunc eget quam vehicula congue at id massa.',
e.NOMPAYS, e.PRIX
from tabletemp e
where e.nompays = t.nompays ) ;



Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
4 nov. 2012 à 12:34
Tu as aussi la fonction replace :
update table set c1= replace(c1,"#NOMPAYS", c2)
0
coffy Messages postés 4 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 5 novembre 2012
5 nov. 2012 à 10:07
ma table s'appelle pays :

mes champs :

- nom (nom du pays)
- indicatif
- vers_fixe (numéro de téléphone)
- vers-mobile (numéro de téléphone)
- continent
- titre_article
- intro_article
- sous_titre_article1
- intro_article1
- tarif_fixe
- tarif_mobile



le titre qui va dans le champ titre_article :
Vos appels vers l'étranger vous coûte cher ?

le texte qui va dans le champ intro_article :
Choisissez INTEL pour faire d'énormes économies, avec INTEL vos factures de téléphone sont diviser par trois etc.... vers #CONTINENT et vous permet d'appeler le #PAYS

pareil pour le second champ texte (sous_titre_article1
et intro_article1) avec un autre texte différent


le texte reste le même, mais le #CONTINENT et le #PAYS change à chaque fois


Ce qui me bloque le plus, c'est le texte, je l'ai dans fichier Word à part

voila j'espère qu'avec ces infos ce sera plus simple car c'est encore flou pour moi

merci
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
5 nov. 2012 à 12:36
Commence par faire une insertion normal avec tes repères (#pays, #continent, etc ...)
Ensuite, tu fais ces requêtes :
update pays set intro_article= replace(intro_article,"#CONTINENT", continent);
update pays set intro_article= replace(intro_article,"#PAYS", nom);
0