---
title: "Ignorera rad i CSV-fil using fgetcsv"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/191136-ignorera-rad-i-csv-fil-using-fgetcsv"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "elky"
published: "2013-02-08T17:33:35.000Z"
updated: "2013-02-09T15:58:03.000Z"
replies: 11
views: 1036
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/191136-ignorera-rad-i-csv-fil-using-fgetcsv"
---

# Ignorera rad i CSV-fil using fgetcsv

## #1 — elky, 2013-02-08T17:33Z

Hej jag använder fgetcsv för att läsa in en .csv-fil till min mysql-databas.

Filen innehåller på första raden kolumn rubrikerna som från början exporterades utifrån en excel-fil. Ett exempel på hur .csv-filen kan se ut har vi nedan:

```
"Namn", "Adress", "Telefonnummer"
"Karl Andersson","Stora gatan 3", "08-1232132"
"Johanna Svensson","Bagargränd 14","08-2312332"
```

Det jag vill åstadkomma är att första raden ignoreras, och informationen utan "-tecknen hamnar i databasen på smidigast tänkbara sätt. I övrigt är det önskvärt att en eventuell tom rad på slutet ej läses in, som det är nu hamnar en tom rad i tabellen vid inläsning, ifall en radbrytning finns efter sista raden i csv-filen.

Php-koden jag använder följer nedan:

```php
 <?php 

//connect to the database
$connect = mysql_connect("localhost","user","user_pwd");
mysql_select_db("user_db",$connect); //select the table
//

if ($_FILES[csv][size] > 0) {

    //get the csv file
    $file = $_FILES[csv][tmp_name];
    $handle = fopen($file,"r");

    //loop through the csv file and insert into database
    do {
           if ($data[0]) {
            mysql_query("INSERT INTO contacts (contact_first, contact_last, contact_email) VALUES
                (
                    '".addslashes($data[0])."',
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."'
                )
            ");
	 }

    } while ($data = fgetcsv($handle,1000,",","'"));
    //

    //redirect
    header('Location: import.php?success=1'); die;

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Importera CSV-fil i min MySQL</title>
</head>

<body>

<?php if (!empty($_GET[success])) { echo "<b>Filen har importerats korrekt.</b><br><br>"; } ?>

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  Choose your file: <br />
  <input name="csv" type="file" id="csv" />
  <input type="submit" name="Submit" value="Submit" />
</form>

</body>
</html>
```

Tack på förhand, E

Permalänk: https://www.webforum.nu/p/191136

## #2 — metalboy, 2013-02-09T10:04Z

Kolla på exemplet i manualen. Där visas hur du håller reda på vilken rad i filen det är som behandlas. Om det är första raden, hoppa till nästa varv i loopen med **continue**

Permalänk: https://www.webforum.nu/p/2307750

## #3 — elky, 2013-02-09T10:11Z

> **[metalboy skrev:](https://www.webforum.nu/p/1558412)**
>
> Kolla på exemplet i manualen. Där visas hur du håller reda på vilken rad i filen det är som behandlas. Om det är första raden, hoppa till nästa varv i loopen med **continue**

Jag gjorde ett försök med just continue men den läste fortfarande in den första raden.

Permalänk: https://www.webforum.nu/p/2307751

## #4 — metalboy, 2013-02-09T10:18Z

Visa hur du har försökt

Permalänk: https://www.webforum.nu/p/2307752

## #5 — elky, 2013-02-09T10:33Z

> **[metalboy skrev:](https://www.webforum.nu/p/1558414)**
>
> Visa hur du har försökt

Jag gjorde en counter som jag sedan innan satte till värdet 0..

```php
if($row == 0){ $row++; continue; }
```

Det borde enligt dokumentationen ha fungerat som önskat men ej.

Permalänk: https://www.webforum.nu/p/2307753

## #6 — metalboy, 2013-02-09T12:53Z

Och var har du lagt in denna kod?
Visa gärna hela koden för ditt försök.

Permalänk: https://www.webforum.nu/p/2307754

## #7 — elky, 2013-02-09T14:49Z

Jag lade in den innan SQL-queryn, är det fel? Du får gärna lägga in den på rätt ställe annars ifall det är fel. Tack på förhand.

Permalänk: https://www.webforum.nu/p/2307755

## #8 — voigtann1, 2013-02-09T15:02Z

Vad kommer $row ifrån?

Permalänk: https://www.webforum.nu/p/2307756

## #9 — elky, 2013-02-09T15:16Z

> **[voigtann1 skrev:](https://www.webforum.nu/p/1558418)**
>
> Vad kommer $row ifrån?

Det är en räknare jag har skapat tidigare, med värdet 0. Den finns ej med i koden ovan utan användes bara i ett försök att skippa första raden i csv-filen. När det ej fungerade återgick jag till min ursprungliga kod vilken jag postade ovan.

Permalänk: https://www.webforum.nu/p/2307757

## #10 — elky, 2013-02-09T15:25Z

Jag läste denna artikel ang problemet:

[skip-the-first-line-of-a-csv-file](http://stackoverflow.com/questions/10901113/skip-the-first-line-of-a-csv-file)

men har ej lyckats implementera detta i min kod så att det fungerar tillfredställande.

Permalänk: https://www.webforum.nu/p/2307758

## #11 — voigtann1, 2013-02-09T15:28Z

har knappt någon erfarenhet med php tycker det känns konstigt att $\_FILES\[csv\] skulle fungera men:

```php
<?php 

//connect to the database
$connect = mysql_connect("localhost","user","user_pwd");
mysql_select_db("user_db", $connect); //select the table
//

if ($_FILES[csv][size] > 0) {
    //get the csv file
    $file = $_FILES[csv][tmp_name];
    $handle = fopen($file,"r");
	$row = 1;
    //loop through the csv file and insert into database
	while ($data = fgetcsv($handle,1000,",","'")){
		if($row == 1){ $row++; continue; }
		if ($data[0]) {
			mysql_query("INSERT INTO contacts (contact_first, contact_last, contact_email) VALUES
				(
                    '".addslashes($data[0])."',
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."'
                )
            ");
		}
    }
    //redirect
    header('Location: import.php?success=1'); die;
}
?>
```

kanske fungera?

Permalänk: https://www.webforum.nu/p/2307759

## #12 — elky, 2013-02-09T15:58Z

Strålande, det fungerade perfekt och utskriften på skärmen som indikerade godkänd inläsning fungerade nu också, vilket den ej heller gjorde innan. Bugar och bockar!

Permalänk: https://www.webforum.nu/p/2307760

---

Tråden på webben: https://www.webforum.nu/amne/php/191136-ignorera-rad-i-csv-fil-using-fgetcsv
