CSV-Datei ohne Komma importieren

JohnDoe

Erfahrenes Mitglied
Hallo Leute,

ich soll eine CSV-Datei ind eine MySQL-DB importieren.
Das Problem dabei ist, dass die Einträge dieser Datei ohne Trennungszeichen aufgelistet werden. Hier ein Beispiel:


"category ""name"" ""image_url "" ""description"" ""artikelnr"" ""price"" ""product_url"""
"N/Schuhe ""Sportsandale"" ""http://image01.otto.de/bonprixbilder/shopposiklein/7er/klein/var1/rb097x06.jpg"" ""Sportsandale. DER Hit im kommenden Sommer! In weiter, bequemer Form, Obermaterial Baumwollvelours, Innenfutter aus Textil, Sohle aus abriebfestem Gummi."" 9336870 ""0.00"" ""http://www.zanox-affiliate.de/ppc/?3377665C50398868T&ULP=[[9336870]]"""


Kann mir eine sagen, ob das irgendwie möglich ist. Das sind so ca. 7000 Einträge. Und ich möchte nicht jeden Eintrag manuell nachbearbeiten.

Danke im voraus...

Edit: Ich sehe gerade, die Datei ist Tab-getrennt. Kann man auch irgendwie danach trennen im MySQL?
 
Zuletzt bearbeitet:
Hallo!

Ob MySQL damit umgehen kann, weiss ich nicht.
Aber wenn es jeweils eine Zeile ist und die Tabulatoren wirklich nur als Feldtrenner genutzt werden, könntest Du es mit PHP machen.
PHP:
explode("/t", trim($zeile));
Das gehört dann aber ins PHP-Forum. ;)

Gruss Dr Dau
 
Ich habe das ganze jetzt über die Oberfläche von 1und1 versucht. Da kam immer folgender Fehler:
Code:
 SQL-Befehl:

LOAD DATA INFILE 'comnet/import.csv' REPLACE
INTO TABLE sportliste
FIELDS
TERMINATED BY '\t'
OPTIONALLY ENCLOSED BY '"'

MySQL meldet: Dokumentation
#1045 - Access denied for user 'dbo156659452'@'%' (using password: YES)

Kann mir einer sagen, was ich verkehrt mache?
 
Ups, muss natürlich \t heissen.

Die Meldung besagt ja dass der Zugriff verweigert wurde.
Benutzername und/oder Passwort korrekt geschrieben (Gross-/Kleinschreibung beachtet)?
 
Danke für eure Hilfe.

Ich habe es jetzt mit folgendem kleinen PHP-Script gelöst:

Code:
<?

// Verbindung zu MySQL aufbauen
mysql_connect("xxxxxxx", "xxxxxxx", "xxxxxxxx");
mysql_select_db("xxxxxxxx");

//CSV Datei zeilenweise in $arr lesen
$arr = file("import.csv");

//Jede einzelne Zeile abarbeiten
for($i = 0; $i < sizeof($arr); $i++) {

  //CSV Zahlen am tab trennen um die einzelen Werte zu bekommen
  $arr2 = explode("\t", $arr[$i]);

  //Daten in die DB schreiben
  if ($arr2[0]) {
    mysql_query("INSERT INTO sportliste VALUES('$arr2[0]', '$arr2[1]', '$arr2[2]', '$arr2[3]', '$arr2[4]', '$arr2[5]', '$arr2[6]')");
  }
}
?>

Jetzt muss ich es nur noch so hinkriegen, dass der User vorher die csv-datei über ein Formular hochladen kann, dann die Tabelle geleert wird und die neue csv importiert wird....
 
Zurück