csv-Daten lesen/schreiben

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
exweised
Mitglied
Beiträge: 123
Registriert: 22.05.2004 17:28

csv-Daten lesen/schreiben

Beitrag von exweised »

hallo,
in einer meiner dateien ist eine liste gespeichert:
1000,blabla1
900,blabla4
30,blabla50
925,blabla7
800,blabla
...
die wollt ich jetzt mittels fgetcsv() auslesen und per rsort() sortieren und ausgeben. leider zeigt er mir alles mögliche an, nur halt den inhalt nicht.

muss ich irgendwas wichtiges beachten oder so? bin noch anfänger mit php und mein script sieht sicherlich katastrophal aus. vielleicht könnt ihr mir ja ein paar tipps geben oder so.

Code: Alles auswählen

		$fp = @fopen($datei, "r");
		if($fp == false) {
		    echo "Fehler! Keine Liste gefunden.\n";
		} else {
		    while(!feof($fp)) {
			$zeile = fgetcsv($fp, 54);
			rsort($zeile);
			if(count($zeile) >= 2) {
			    $zeile_array[] = $zeile;
			}
			foreach($zeile_array as $zahl => $name) {
			    echo $zahl . "&nbsp;" . $name . "<br>";
			}
		    }
		}
		fclose($fp);
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Hast du dir das Beispiel unter http://de3.php.net/manual/de/function.fgetcsv.php mal angeschaut?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
exweised
Mitglied
Beiträge: 123
Registriert: 22.05.2004 17:28

Beitrag von exweised »

danke. ;)

hab das jetzt so, aber anstatt mir die zahlen zu sortieren, tauscht er bloß die spalten gegeneinander. :( kann ich das irgendwie anders lösen?

Code: Alles auswählen

		    while(!feof($fp)) {
		        $data = fgetcsv($fp, 54);
		        rsort($data);
			echo $data[0] . "&nbsp;" . $data[1] . "<br>";
		    }
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Bekommst du mit dieser Lösung überhaupt mehr als eine Zeile ausgegeben? Ich habe da so meine Zweifel dran...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
exweised
Mitglied
Beiträge: 123
Registriert: 22.05.2004 17:28

Beitrag von exweised »

doch, bekomme alles ausgegeben. bloß die sortierungen hängt leider noch.
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Sorry - hatte da was falsch gelesen.

Versuch mal:

Code: Alles auswählen

$data = array(); // Wir initialisieren ein Array
while(!feof($fp))
{
    $data[] = fgetcsv($fp, 54); // und fügen jede Zeile dem Array hinzu
}

// hier fehlt noch die Sortierung

foreach($data as $rowdata)
{
    echo $rowdata[0] . "&nbsp;" . $rowdata[1] . "<br>";
}
Du musst erst alle Daten einlesen, bevor du sie ausgibst (sonst kann das mit dem Sortieren auch nicht klappen).
Die Sortierung fehlt noch - die ist da auch etwas komplexer (siehe [php:array_multisort] - vielleicht hat aber jemand gerade die passenden Zeilen parat.

Gruß, Philipp
Zuletzt geändert von PhilippK am 19.06.2004 22:26, insgesamt 1-mal geändert.
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
exweised
Mitglied
Beiträge: 123
Registriert: 22.05.2004 17:28

Beitrag von exweised »

bei der ausgabe stand dann nur array array da. dann habe ich bei der schleife bei $data[0] und $data[1] einfach $data[0][0] und $data[1][1] gemacht. jetzt zeigt er mir aber nur die erste zeile an, so oft wie einträge in der datei stehen. :(
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Tja, man sollte nicht das Ursprungs-Array sondern nur den einen Wert abfragen...
Das Script oben ist geändert (vorletzte Zeile)

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
exweised
Mitglied
Beiträge: 123
Registriert: 22.05.2004 17:28

Beitrag von exweised »

ach, ich bin ja auch bekloppt. darauf hätte ich auch kommen können. danke dir. ;)
Antworten

Zurück zu „Coding & Technik“