Hallo,
ich hab mal wieder ein Problem. Und zwar geht es darum eine große
Anzahl von Werten einer CSV-Datei in mehrere Dateien aufzuteilen.
In der Datei sind ca. 11000 Datensätze.
Also sagen wir in der Datei sind die Werte:
Jetz sollen die Werte für id, Name und Aktiv in eine neue Datei geschrieben werden.
Es soll aber so sein, das wenn es den Namen in der neuen Datei schon gibt,
dieser nicht mehr reingeschrieben wird.
Ich hab mir das folgendermaßen gedacht:
Das Problem ist ich hab irgend einen Denkfehler drin.
Leider funktioniert das nicht. Es steht immer alles drin.
Weiß jemand ne Lösung oder eine andere Möglichkeit wie ich das machen könnte? So rein wegen der Performance?
ich hab mal wieder ein Problem. Und zwar geht es darum eine große
Anzahl von Werten einer CSV-Datei in mehrere Dateien aufzuteilen.
In der Datei sind ca. 11000 Datensätze.
Also sagen wir in der Datei sind die Werte:
Code:
id;name;Farbe;Aktiv;Anzahl 1;Kabel;rot;1;150 2;Apapter;grün;1;200 3;Kabel;schwarz;1;300 ...
Es soll aber so sein, das wenn es den Namen in der neuen Datei schon gibt,
dieser nicht mehr reingeschrieben wird.
Ich hab mir das folgendermaßen gedacht:
PHP-Code:
$y=0;
$handle = fopen(dirname(__FILE__).'/../import/preisliste.csv', 'r'); //Quelldatei
$fp = fopen(dirname(__FILE__).'/../import/kategorien.csv', 'a+'); //Zieldatei
for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, ";"); $current_line++)
{
//1. Zeile weglassen (also die Spaltennamen)
if($current_line!=0)
{
for ($x = 0; $zeile = fgetcsv($fp, MAX_LINE_SIZE, ";"); $x++)
{
if($line[4]==$zeile[2])
{
$y=1;
break;
} //if line==zeile
} //for-Schleife $x
//Prüfen ob yungleich 1, wenn ja reinschreiben
if($y!=1)
{
$text=($current_line+1).";1;".$line[4]."\n";
fwrite($fp,$text);
$y=0;
} //if $y
else $y=0;
} // if current_line
} //for-Schleife
fclose($handle);
fclose($fp);
Leider funktioniert das nicht. Es steht immer alles drin.

Weiß jemand ne Lösung oder eine andere Möglichkeit wie ich das machen könnte? So rein wegen der Performance?
Kommentar