Version complète: sur le forum Webmaster Hub : Transformer un fichier .txt en sql
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
appollo
Bonjour,

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

voici à quoi ressemble les fichiers en questions :

CODE
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...
captain_torche
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 :
SQL
INSERT INTO ta_table(champ1, champ2, champ3) VALUES('valeur1','valeur2','valeur3')
appollo
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....
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.