Importation CSV dans une BDD

Résolu/Fermé
Psykotik's - 23 janv. 2008 à 10:25
 le père - 23 janv. 2008 à 13:17
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

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.
1