CSV-Datei verarbeiten

xtratz

Gesperrt
Hallo Leute,

ich wage mich zum ersten mal daran eine CSV Datei zu verarbeiten.

Mit folgender Funktion öffne ich eine CSV Datei und lese Sie ein. Mit $row[1], $row[2]......, kann ich mir die einzelnen Spalten ausgeben lassen. Wie aber prüfe ich die einzelnen Spalten auf einen bestimmten Wert. Das bedeutet, ich möchte mir alle Werte einer Spalte ausgeben lassen in der z.b. 12345 vorkommt.
Habt Ihr eine Idee für mich?!.

<?
$fp = fopen ("datei.csv","r");

while ($row = fgetcsv($fp, 1000, ";"))
{


}

fclose ($fp);
?>

Ich danke euch vielmals.

Gruss
 
Zuletzt bearbeitet:
Hallo!

Ich denke schon dass es machbar ist.
Es ist aber sicherlich einfacher die CSV-Datei in MySQL zu importieren um von dort die Daten abzufragen.

Ansonsten solltest Du dir mal für den Anfang fgetcsv() oder explode() ansehen.

Gruss Dr Dau
 
Ok das ist eine idee.

Leider habe ich das noch nie gemacht. Also ich lege die Tabelle in der DB an. Muss ich nun auch schon alle Spalten anlegen oder werden die automatisch beim importieren der csv Date angelegt.

Danke.
 
Probier mal Folgendes:
PHP:
<?php

	$matches = array();
	$fp = fopen('datei.csv', 'r');
	while( $row = fgetcsv($fp, 1000, ';') ) {
		foreach( $row as $item ) {
			if( $item == 12345 ) {
				$matches[] = $row;
				breaks;
			}
		}
	}
	fclose($fp);

?>
Damit sind alle übereinstimmenden Datensätze in der $matches-Variable.
 
Ok danke...ich habs nun hinbekommen. Die Daten anzeigen zu lassen und in eine Db zu speichern. Juhuuu!!

Jetzt wollte ich bei php.net nach einer Funktion suchen die mir einen Datensatz duchrsucht welcher z.b. 12345 beinhaltet. Einen Datensatz der dann z.b. Verwendungszweck: 12345 25.12.06 lautet möchte ich Filtern sodass lediglich 12345 übrig bleibt. Mit diesem kann ich dann Arbeiten. Ich weis es gibt eine Funktion dafür....aber der Namen fällt mir nicht ein.

Vielleicht noch einen Tipp!?.

Das wäre echt Super und Ihr habt mich gerettet.

DAnke und Gruss.
 
Ja...das Problem ist das ich die Werte mittlerweile aus der Datenbank hole, was ich eigentlich vor hatte.
Ich habe es schon hiermit versucht aber da wird ja lediglich True oder false zurückgegeben.

PHP:
$variable = 'kundennummer: 12345 Verwendungszweck: 6789';
.....
if (strpos(strtolower($variable), "12345") === FALSE)
.....


Hiermit wird es sehr kompliziert für mich.
Wenn ich nun 12345 als Variable zurückbekommen würde dann wäre es weniger ein Problem. Das wäre die Lösung PUR.

Aber ich bekommes es einfach nicht hin.
Alle Funktionen die ich kenne geben lediglich true oder false zurück.

Gruss
 
Wie ist die Datenbanktabelle aufgebaut und wie sehen die Einträge darin aus?
Wie sieht dein SELECT Query aus?
Und evtl. könntest Du auch noch zeigen wie Deine CSV-Datei aussieht.
 
Zurück