Bin seit Tagen an dieser Aufgabe am verzweifeln! Kann mir bitte wer helfen?!
Will eine csv Datei nach mysql importieren - per Scriptund nicht per dump o.ä., ich später nur einzelne Felder der csv importieren möchte und per schleife da die csv später verdammt lang wird...
So sieht mein Script jetzt aus:
<html>
<head>
<title>test</title>
</head>
<body>
<?php
$dateiname="beispiel.csv";
$datei=fopen($dateiname,"r");
$daten=fread($datei,filesize($dateiname));
fclose($datei);
$datensaetze=explode("\n",$daten);
for($i=0;$i<sizeof($datensaetze);$i++) {
$datenfeld[$i]=explode(";",$datensaetze[$i]);
}
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$dbName = "test";
$connect = mysql_connect($dbHost, $dbUser, $dbPass) or die("Verbindung zum Server nicht hergestellt!<br>");
$selectDB = mysql_select_db($dbName) or die("Konnte die Datenbank <b>$dbName</b> nicht auswählen");
for($i=0;$i<sizeof($datensaetze);$i++) {
if($datensaetze[$i] != "") {
mysql_query("INSERT INTO testing (id, name1, name2, name3, name4, name5, name6) VALUES('$datenfeld[$i][0]','$datenfeld[$i][1]','$datenfeld[$i][2]','$datenfeld[$i][3]','$datenfeld[$i][4]','$datenfeld[$i][5]','$datenfeld[$i][6]')");
}
}
mysql_close();
?>
</body>
</html>
So sieht meine csv aus:
1;kraut;ist;gut;für;die;seele;root00
2;topf;mit;kraut;und;rueben;zahl;root01
3;gewusst;wie;ohne;wenn;und;aber;root02
4;der;landwirt;schlägt;den;guten;knecht;root03
5;frieden;für;alle;freiheit;für;mich;root04
6;die;fliege;weiß;wie;es;geht;root05
7;vögel;die;FLIEGEN;beißen;sehr;selten;root06
8;gut;besser;günther;er;gewinnt;immer;root07
9;wer;kennt;das;problem;des;denkens;root08
10;wer;überlegt;sich;solche;blöden;platzhalter;root09
Und so die MySQL Tabelle nach dem anwenden:
id name1 name2 name3 name4 name5 name6
Array[0] Array[1] Array[2] Array[3] Array[4] Array[5] Array[6]
Das heißt er schrebt nur eine zeile in die Datenbank und die Arrayvariablen werden auch nicht verarbeitet, wer weiß was ich da falsch mache???
Will eine csv Datei nach mysql importieren - per Scriptund nicht per dump o.ä., ich später nur einzelne Felder der csv importieren möchte und per schleife da die csv später verdammt lang wird...
So sieht mein Script jetzt aus:
<html>
<head>
<title>test</title>
</head>
<body>
<?php
$dateiname="beispiel.csv";
$datei=fopen($dateiname,"r");
$daten=fread($datei,filesize($dateiname));
fclose($datei);
$datensaetze=explode("\n",$daten);
for($i=0;$i<sizeof($datensaetze);$i++) {
$datenfeld[$i]=explode(";",$datensaetze[$i]);
}
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$dbName = "test";
$connect = mysql_connect($dbHost, $dbUser, $dbPass) or die("Verbindung zum Server nicht hergestellt!<br>");
$selectDB = mysql_select_db($dbName) or die("Konnte die Datenbank <b>$dbName</b> nicht auswählen");
for($i=0;$i<sizeof($datensaetze);$i++) {
if($datensaetze[$i] != "") {
mysql_query("INSERT INTO testing (id, name1, name2, name3, name4, name5, name6) VALUES('$datenfeld[$i][0]','$datenfeld[$i][1]','$datenfeld[$i][2]','$datenfeld[$i][3]','$datenfeld[$i][4]','$datenfeld[$i][5]','$datenfeld[$i][6]')");
}
}
mysql_close();
?>
</body>
</html>
So sieht meine csv aus:
1;kraut;ist;gut;für;die;seele;root00
2;topf;mit;kraut;und;rueben;zahl;root01
3;gewusst;wie;ohne;wenn;und;aber;root02
4;der;landwirt;schlägt;den;guten;knecht;root03
5;frieden;für;alle;freiheit;für;mich;root04
6;die;fliege;weiß;wie;es;geht;root05
7;vögel;die;FLIEGEN;beißen;sehr;selten;root06
8;gut;besser;günther;er;gewinnt;immer;root07
9;wer;kennt;das;problem;des;denkens;root08
10;wer;überlegt;sich;solche;blöden;platzhalter;root09
Und so die MySQL Tabelle nach dem anwenden:
id name1 name2 name3 name4 name5 name6
Array[0] Array[1] Array[2] Array[3] Array[4] Array[5] Array[6]
Das heißt er schrebt nur eine zeile in die Datenbank und die Arrayvariablen werden auch nicht verarbeitet, wer weiß was ich da falsch mache???
Kommentar