Importation CSV dans une BDD
Résolu
Psykotik's
-
le père -
le père -
Bonjour,
Je travail actuellement sur un projet, pour mes études, qui doit faciliter le travail d'une équipe. Le but, est d'importer un fichier CSV dans une base de donnée. Mon probleme se situ au niveau de la lecture du fichier à importé, je n'arrive pas à "supprimer", ou plutôt, à ne pas lire la première ligne (qui n'est rien d'autre que le nom des champs). J'ai testé plusieur bout de code pour essayer de comprendre les differentes fonctions de lecture de fichier, la principale est "fgets". Voici mes tests:
Code:
while (!feof($fp))
{
$ligne = fgets ($fp, 4096);
$liste = explode(";" , $ligne);
$nb_champs = count($liste);
echo $liste[0];
}
Mon probleme commence deja ici, je m'explique:
Mon but est de sauter la première ligne du fichier .CSV, et lorsque je fais l'echo de "$liste[0]" il m'affiche alors toutes les valeurs de la 1ère colonne.
Resultat:
$liste[0] contient :
NOM
DUPOND
LEGRAND
LINTRU
J'ai ensuite essayé de mettre ca dans une boucle:
Code:
while (!feof($fp))
{
$ligne = fgets ($fp, 4096);
$liste = explode(";" , $ligne);
$nb_champs = count($liste);
echo $liste[0];
for ($i = 0; $i < $nb_champs; $i++)
{
echo $liste[$i].'<br>';
}
}
A ma plus grande surprise il m'affiche:
Resultat:
NOM
ADRESSE
NUMERO
ID
DUPOND
45 rue du....
2458965
1
LEGRAND
26 rue de...
4589657
2
LINTRU
85 allée de ...
7896543
3
J'en testé plusieurs autres façon pour ne pas lire les champs mais rien a faire quelque chose m'échape.
Je demande donc à la communauté de COMMENT CA MARCHE un petit peut d'aide:)
(J'espere avoir assez detaillé mon problème)
MERCI d'avance
Je travail actuellement sur un projet, pour mes études, qui doit faciliter le travail d'une équipe. Le but, est d'importer un fichier CSV dans une base de donnée. Mon probleme se situ au niveau de la lecture du fichier à importé, je n'arrive pas à "supprimer", ou plutôt, à ne pas lire la première ligne (qui n'est rien d'autre que le nom des champs). J'ai testé plusieur bout de code pour essayer de comprendre les differentes fonctions de lecture de fichier, la principale est "fgets". Voici mes tests:
Code:
while (!feof($fp))
{
$ligne = fgets ($fp, 4096);
$liste = explode(";" , $ligne);
$nb_champs = count($liste);
echo $liste[0];
}
Mon probleme commence deja ici, je m'explique:
Mon but est de sauter la première ligne du fichier .CSV, et lorsque je fais l'echo de "$liste[0]" il m'affiche alors toutes les valeurs de la 1ère colonne.
Resultat:
$liste[0] contient :
NOM
DUPOND
LEGRAND
LINTRU
J'ai ensuite essayé de mettre ca dans une boucle:
Code:
while (!feof($fp))
{
$ligne = fgets ($fp, 4096);
$liste = explode(";" , $ligne);
$nb_champs = count($liste);
echo $liste[0];
for ($i = 0; $i < $nb_champs; $i++)
{
echo $liste[$i].'<br>';
}
}
A ma plus grande surprise il m'affiche:
Resultat:
NOM
ADRESSE
NUMERO
ID
DUPOND
45 rue du....
2458965
1
LEGRAND
26 rue de...
4589657
2
LINTRU
85 allée de ...
7896543
3
J'en testé plusieurs autres façon pour ne pas lire les champs mais rien a faire quelque chose m'échape.
Je demande donc à la communauté de COMMENT CA MARCHE un petit peut d'aide:)
(J'espere avoir assez detaillé mon problème)
MERCI d'avance
A voir également:
- Importation CSV dans une BDD
- Importer des favoris dans chrome - Guide
- Importer agenda outlook dans google - Guide
- Comment importer une pièce d'identité sur facebook - Guide
- Le module d'importation a signalé une erreur générique - Forum Photoshop
- Impossible d'importer fichiers SRT sur Première pro - Forum Logiciels
1 réponse
Bonjour
Attention, pour lire du CSV, utilise plutôt $liste=fgetcsv($fp,4096,";");
( pas besoin de $ligne ni de explode qui de toutes manières ne marchen pas si un de tes champs contient une fin de ligne ou un ';'
pour ignorer la 1ère ligne, rajoute simplement
$liste=fgetcsv($fp,4096,";");
AVANT le while.
Attention, pour lire du CSV, utilise plutôt $liste=fgetcsv($fp,4096,";");
( pas besoin de $ligne ni de explode qui de toutes manières ne marchen pas si un de tes champs contient une fin de ligne ou un ';'
pour ignorer la 1ère ligne, rajoute simplement
$liste=fgetcsv($fp,4096,";");
AVANT le while.