2009-02-23 5 views
3

J'ai mis en place un script qui va télécharger un fichier CSV, puis extraire les données dans une table déjà faite. Je veux faire en sorte que la première ligne (les en-têtes de colonnes) ne soit pas insérée dans la table, mais le reste des données le sera.Comment supprimer la ligne du haut dans un fichier CSV (les en-têtes coloumn)?

$fp = fopen($_SESSION['filename'],"r"); 


while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) 

{ 
    $import="INSERT into csv_table(name,address,age) values('$data[0]','$data[1]','$data[2]')"; 

    mysql_query($import) or die(mysql_error()); 

} 

fclose($fp); 

Ceci est la partie du code que j'utilise pour extraire les données du fichier csv.

Merci beaucoup pour toute aide à ce sujet!

Répondre

11

Il suffit de mettre les points suivants avant la boucle while pour lire la première ligne:

fgetcsv($fp, 1000, ","); 

Ensuite, la boucle while commence par la deuxième ligne à la place.

+0

homme Oh, tu me bats par deux secondes ... –

+0

homme que vous êtes le génie –

1

Réfléchissez-y.

Créez un indicateur booléen à l'extérieur et faites-le basculer une fois que vous avez entré la boucle au lieu d'importer, en utilisant une instruction if.

0

Il suffit de faire une lecture vierge en tant que tel:

$fp = fopen($_SESSION['filename'],"r"); 
$headerLine = true; 

while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) 

{ 
     if($headerLine) { $headerLine = false; } 
     else { 
       $import="INSERT into csv_table(name,address,age) values('$data[0]','$data[1]','$data[2]')"; 

       mysql_query($import) or die(mysql_error()); 
     } 

} 

fclose($fp); 
Questions connexes