Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Datenimport mit PHP

Hallo,

ich habe eine Datei test.csv.
in dieser Dateie stehen Daten:

artikelnummer;farbe;groesse;
1234;rot;xxl

nun möchte ich diese Daten in eine vorhandene Datenbank/Tabelle importieren

Tabelle artikel:
artikelnummer;groesse;farbe;anzeigen;intern

Wie ihr seht ist der Aufbau der Tabelle anders(Reihenfolge und Spalten) als die der test.csv.
Auserdem möchte ich vorhandene daten nicht ersetzten oder überschreiben.
Die Felder die in der Datei nicht definiert sind(anzeige, intern) sollen in der Datenbank leer bleiben

ich habs schon versucht aber so gehts leider nicht:

$sql200 = 'LOAD DATA INFILE \'/www/test/test.csv\' IGNORE INTO TABLE `artikel` (artikelnummer, farbe, groesse) '
. ' FIELDS TERMINATED BY \';\''
. ' ENCLOSED BY \'"\''
. ' ESCAPED BY \'\\\\\''
. ' LINES TERMINATED BY \'\\r\\n\';' ;
$resultset200 = mysql_query($sql200);

hat jemand eine Idee?

Zur Info:
$sql200 = 'LOAD DATA INFILE \'/www/test/test123.csv\' REPLACE INTO TABLE `bestand` '
. ' FIELDS TERMINATED BY \';\''
. ' ENCLOSED BY \'"\''
. ' ESCAPED BY \'\\\\\''
. ' LINES TERMINATED BY \'\\r\\n\';' ;
$resultset200 = mysql_query($sql200);

Funktioniert!


Danke,
Gruß Thomas

Hier gehts zum Orginal Eintrag "Datenimport mit PHP" im Forum

Antworten

Hmmm....

Kannst du nicht einfach die Datei zeilenweise einlesen, die einzelnen Dinger mit explode() trennen und die dann über einfache Insert-Befehle in die Datenbank packen ?

Sven


2.

Danke für den Tipp,

Du meinst etwa so:

//Öffnet Datei Testdaten mit Artikelnummer, Größe und Farbe
$fp = @fopen("testdaten", "r") or die ("Kann Datei nicht lesen.");

while ($line = fgets($fp, 1024)) {
$my_array = explode(';',$line,3);

//Da artikelnummer Unique ist kann es nicht passieren, dass doppelte Artikelnummern eingetragen werrden
$SQL_statement = "INSERT INTO artikel (artikelnummer, groesse, farbe) VALUES ('$my_array[0]', '$my_array[2]', '$my_array[1]')";
if( mysql_query($SQL_statement)){
echo "Erfolg! ";
echo $my_array[0]."<br>";
}

}
fclose($fp);

?>


Hat geklappt! :)


3.

Genau so.

Sven


4.

[doc]fgetcsv[/doc]
*** Nobody ***


Hier gehts zum Orginal Eintrag "Datenimport mit PHP" im Forum
 
phpforum.de | Impressum