Aller au contenu

Transformer un fichier .txt en sql


Sujets conseillés

Posté

Bonjour,

Je dispose de plusieurs fichiers .txt que j'aimerais insérer dans une table sql (mysql)

voici à quoi ressemble les fichiers en questions :

photo;marque;reference;prix_E1;ecoparticipation;montant_total;code_EAN;type1;fon
ct_appareil;ecran_lcd;taille_ecran_lcd;nb_pixel;zoom_num;zoom_optique;qualite_cap
teur;stabilisateur;support_enreg;capacite_enreg;focus;sortie_av;sortie_dvd;autono
mie;couleur;chargeur;batterie;poids_nu;dimensions;
http://www.copra.fr/_elts_dynamiques/produits/PANASONIC/SDRS7EFK_n.jpg;PANASONIC;SDR-S7EF-K;299.00;0.10;299.10;;Camescope numérique;A carte SD;oui;"2,7""";800 k pixels;10x - 700x;X 10 à vitesse variable;"CCD 1/6""";E.I.S.;Carte SD - SDHC;Selon carte mémoire;;oui;;;;oui;Lithium-Ion;165 g;
;
http://www.copra.fr/_elts_dynamiques/produits/PANASONIC/SDRHD42EFPACK_n.jpg;PANASONIC;SDR-HD42EF-PACK;399.00;0.10;399.10;;Camescope numérique et sacoche;A disque dur;oui;"2,7""";800 k pixels;42x - 2000x;X42 à vitesse variable;"CCD 1/6""";optique OIS avancé;slot carte SD/SDHC;Selon carte mémoire;;oui;;;;oui;Lithium-Ion;340 g;
;
http://www.copra.fr/_elts_dynamiques/produits/SAMSUNG/VPD3810_n.jpg;SAMSUNG;VP-D3810;179.99;0.10;180.09;;Camescope numérique et sacoche de transport;Mini DV;oui;"2,7""";800 k pixels;34x - 1200x;X 34;"CCD 1/6""";DIS;;;;oui;;;Black Gloss;oui;;340 g;
;
http://www.copra.fr/_elts_dynamiques/produits/SONY/DCRDVD110E_n.jpg;SONY;DCRDVD110E;319.00;0.15;319.15;;Camescope numérique;DVD;oui;"2,7""";800 k pixels;X 2000;X40;CCD 1/8,0;Super SteadyShot;Mémory Stick Duo;;;oui;;;;oui;NP-FH40;390 g;
;

Donc en gros je me demande comment tranformer un tel fichier en sql sachant que les différents champs sont présent dans la première ligne et que les différents attributs des champs sont présent dans les lignes suivantes.

Merci d'avance pour votre contribution à mon aide.

Rémy...

Posté

Tu vas devoir utiliser la fonction file() pour transformer ton fichier en array (une entrée par ligne).

Tu nettoies ensuite chaque ligne avec trim() pour en enlever les retours chariots de fin de chaîne.

Ensuite, tu isoles la première ligne (avec array_shift(), par exemple), et avec un explode() tu en sors chaque entrée. Tu les gardes bien au chaud pour après.

Sur chacune des lignes restantes, tu fais de même : tu fais un explode pour séparer les différentes entrées, puis tu fais en sorte de passer chaque entrée à la moulinette mysql_real_escape_string(), puis de l'entourer de guillemets.

Il ne te reste plus qu'à construire ta requête avec deux implode() : le premier pour l'array du début qui contient les noms de champs, le second pour l'array suivant (la ligne de contenu).

Ta requête doit ressembler à ça :

INSERT INTO ta_table(champ1, champ2, champ3) VALUES('valeur1','valeur2','valeur3')

Posté

Que dire merci beaucoup je vais suivre ton petit comment dire tutoriel car s'est carrément ça et je vous tiens au courant.

Merci encore

Rémy....

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...