Import des données d un fichier txt ou csv dans mysql en php
laura_lina
Messages postés
3
Statut
Membre
-
jeremy.s Messages postés 1248 Statut Membre -
jeremy.s Messages postés 1248 Statut Membre -
Bonjour,
je veux faire un code pour importer les données d'un fichier .txt ou .csv et les stockées dans bdd mysql en php
pouvez-vous m"aider?
c'est la première fois que je traite ce type de fichier( cat,detail_cat) pour allimenter la table categorie , (sous_cat_prd) => table produit , (sous_cat_schema)=> table schema , il y a une jointure entre la table mère categorie avec les tables filles(produit , table schema)
le fichier .txt ou .csv de cet format:
----------- cat1 -------------
Nom_cat=cat1
desc_cat=test description cat
----------- detail_cat ---------------
det_nom=test nom
det_desc=schema precis
det_titre=le schema de l'appli
------------- sous_cat_prd -------------
prd_nom=testprd,prd_descr=descrprd,prd_type=typeprd
prd_nom=ordi,prd_descr=perform,prd_type=ibm
prd_nom=apareil,prd_descr=description de l'apareil,prd_type=photo
-------------- sous_cat_schema -------------
scs_nom=schemaprd:scs_descr=descr schem:scs_adr=77 rue
scs_nom=schema2:scs_descr=description du schema2:scs_adr=40 bldv
----------- cat2 -------------
Nom_cat=cat2
desc_cat=test2 description cat
----------- detail_cat ---------------
det_nom=testnom2
det_desc=schema precis test2
det_titre=le schema de l'appli2
------------- sous_cat_prd -------------
prd_nom=testprd2,prd_descr=descr prd,prd_type=type produit
prd_nom=machine,prd_descr=performant,prd_type=nespress
-------------- sous_cat_schema -------------
scs_nom=scc:scs_descr=descr schem:scs_adr=33 avn
scs_nom=vers:scs_descr=description du vers:scs_adr=30 bldv
merci d'avance
je veux faire un code pour importer les données d'un fichier .txt ou .csv et les stockées dans bdd mysql en php
pouvez-vous m"aider?
c'est la première fois que je traite ce type de fichier( cat,detail_cat) pour allimenter la table categorie , (sous_cat_prd) => table produit , (sous_cat_schema)=> table schema , il y a une jointure entre la table mère categorie avec les tables filles(produit , table schema)
le fichier .txt ou .csv de cet format:
----------- cat1 -------------
Nom_cat=cat1
desc_cat=test description cat
----------- detail_cat ---------------
det_nom=test nom
det_desc=schema precis
det_titre=le schema de l'appli
------------- sous_cat_prd -------------
prd_nom=testprd,prd_descr=descrprd,prd_type=typeprd
prd_nom=ordi,prd_descr=perform,prd_type=ibm
prd_nom=apareil,prd_descr=description de l'apareil,prd_type=photo
-------------- sous_cat_schema -------------
scs_nom=schemaprd:scs_descr=descr schem:scs_adr=77 rue
scs_nom=schema2:scs_descr=description du schema2:scs_adr=40 bldv
----------- cat2 -------------
Nom_cat=cat2
desc_cat=test2 description cat
----------- detail_cat ---------------
det_nom=testnom2
det_desc=schema precis test2
det_titre=le schema de l'appli2
------------- sous_cat_prd -------------
prd_nom=testprd2,prd_descr=descr prd,prd_type=type produit
prd_nom=machine,prd_descr=performant,prd_type=nespress
-------------- sous_cat_schema -------------
scs_nom=scc:scs_descr=descr schem:scs_adr=33 avn
scs_nom=vers:scs_descr=description du vers:scs_adr=30 bldv
merci d'avance
A voir également:
- Import des données d un fichier txt ou csv dans mysql en php
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
7 réponses
Salut salut,
On utilise souvent des csv pour ce genre de truc. Comme t'as pu le voir il y a un délimiteur commun entre chaque donnée.
Le principe c'est d'ouvrir en lecture ton fichier csv, boucler par ligne et trier le tout avec des explode ou autre.
Chaque type de donnée étant toujours à la même place tu peux faire ton insert dans la boucle.
On utilise souvent des csv pour ce genre de truc. Comme t'as pu le voir il y a un délimiteur commun entre chaque donnée.
Le principe c'est d'ouvrir en lecture ton fichier csv, boucler par ligne et trier le tout avec des explode ou autre.
Chaque type de donnée étant toujours à la même place tu peux faire ton insert dans la boucle.
Salut !
Ca reste assez délicat comme format je trouve ...
Tu ne peux pas changé le format ? Genre un xml serrait parfait pour ce genre de fichier ;-)
Ca reste assez délicat comme format je trouve ...
Tu ne peux pas changé le format ? Genre un xml serrait parfait pour ce genre de fichier ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mmh enplus le nombre de ligne n'est pas fixe ...
Faudrait voir pour récupérer déjà chaque bloc, avec un explode('Nom_cat') mais c'est du bidouillage ... Ensuite explode(',') et explode('=')
Puis tu regarde par incrémentation de deux,
Le premier étant Nom_cat, et le dexieme cat1.
Faudrait voir pour récupérer déjà chaque bloc, avec un explode('Nom_cat') mais c'est du bidouillage ... Ensuite explode(',') et explode('=')
Puis tu regarde par incrémentation de deux,
Le premier étant Nom_cat, et le dexieme cat1.
Sinon pour récupérer chaque "bloc", une regex ----------- cat[1-9][0-9] ------------- peut être ...
Tu as donc chaque bloc cat, ensuite tu supprimes tes lignes ----- blabla -----
Tu explodes sur le retour à la ligne, ensuite sur la virgule, et pour finir le = où l'élement avec un index paire sera le champ, et celui à l'index impaire sera la valeur.
exemple :
$tab = explode('=', $doc);
echo $tab[0] // Nom_cat
echo $tab[1] // cat1
echo $tab[2] // desc_cat
echo $tab[3] // test description cat
Tu as donc chaque bloc cat, ensuite tu supprimes tes lignes ----- blabla -----
Tu explodes sur le retour à la ligne, ensuite sur la virgule, et pour finir le = où l'élement avec un index paire sera le champ, et celui à l'index impaire sera la valeur.
exemple :
$tab = explode('=', $doc);
echo $tab[0] // Nom_cat
echo $tab[1] // cat1
echo $tab[2] // desc_cat
echo $tab[3] // test description cat