csv-Daten aus Tabelle auslesen

kbit

Erfahrenes Mitglied
Hi,

ich speichere eine csv-Datei in eine mysql Tabelle. (Spalte ist ein mediumblob). Das klappt auch.

Der Inhalt der csv-Datei sieht z.B so aus : (und natürlich nach dem einlesen auch der Inhalt der Tabellenspalte)

12345.jpg(789123),85
22222.jpg(8952121),25
34567.jpg(0123456),12

Nun möchte ich diese Daten später auslesen und weiterverarbeiten.

Und nun zu meinem Problem:

Wenn ich die Daten auslese aus der DB steht der Inhalt (siehe oben ) in einem string. z.B. in der variablen $data. Ich möchte jetzt aber, dass der Inhalt Zeile für Zeile in einem Array steht.

Also so:

array(2) { [0]=> string(20) "12345.jpg(789123),85" [1]=> string(21) "22222.jpg(8952121),25" } (So würde ja der Inhalt aussehen, wenn ich jetzt die Daten direkt von der csv-Datei z.B. mit fgetcsv ausgelesen hätte.)

Hat jemand eine Idee wie ich den Inhalt der csv-Datei in ein Array bekomme und nicht komplett alle Zeilen in einem string ?
 
AW: csv-Daten aus Tabelle auslesen
So?
PHP-Code:
$data = file('meinedatei.csv');

Ich hab die Datei selber ja gar nicht mehr, sondern nur die binärdaten in der DB.

Tabelle sieht so aus:

data (mediumblob) : Hier stehen die Binärdaten aus der csv-Datei : 12345.jpg(789123),85 usw.
filename(varchar) : Dateiname

Beim auslesen hole ich mir mit
Code:
 Selete filename, data From ...
die Infos aus der Tabelle. Und schreibe sie in $details

PHP:
foreach ($details as $data )
{
   echo $data['data'];
}

Ausgabe sieht so aus:
12345.jpg(789123),85
22222.jpg(8952121),25
34567.jpg(0123456),12

Ich möchte jetzt aber das die Daten Zeile für Zeile in ein Array geschrieben werden:

array(2) { [0]=> string(20) "12345.jpg(789123),85" [1]=> string(21) "22222.jpg(8952121),25" }

Damit wenn ich die Daten weiterverarbeite und dann wieder in eine csv-Datei speichere auch Zeile für Zeile in der neuen csv stehen.
 
Dann trenn die Werte von einander...
explode($var; ',\');

PHP:
foreach ($details as $data )
{
   $more_data = explode($data, ',\'); #2. Paramter trenwert
   print_r($more_data);  # Tutorials.de löscht ihn mir hier x-D
   unset($more_data, $data);
}
Ich hab erst von einigen Tagen einen CSV->XML-Konverter als Auftrag abgeschloßen.
 
Hi,

das würde so nicht gehen, weil $details ein string ist und ich dann erst ein array daraus machen möchte.

Ich hab es jetzt aber gelöst.

Und zwar mache ich das so :

PHP:
$data = nl2br($details); # da ich weiß das die Daten aus der csv-Datei Zeilenweise im string stehen

$data = explode("<br />",$data);# anhand der HTML-Zeilenumbrüche kann ich den string dann teilen.
print_r($data);
 
Zuletzt bearbeitet:
Schau dir zum schreiben von CSV-Dateien mal die Funktion fopen (inkl Parameter '+a', '+w' usw.) und die Funktion "fwrite" an ;)
 
@einfach nur crack

Stimmt da spare ich mir das nl2br. Zu kompliziert gedacht !

Aber es wird so aufgerufen dann passt es auch ;)
PHP:
$data = explode("\n",$details);

@bofh1337: Ja kenne ich aber wozu sollte ich diese Funktionen jetzt brauchen ? Ich wollte die Daten ja jetzt nicht direkt wieder in eine csv -Datei schreiben. Ich verwende sie weiter und schreibe dann später mit anderen Daten eine neue csv-Datei. Das ist auch dann kein Problem.
 
Zurück