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
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
//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
