ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
465
465
EMPFEHLEN
-
09.11.11 11:48 #1
- Registriert seit
- Nov 2011
- Beiträge
- 9
Hallo liebe Community,
ich trete erneut mit einem Problem an euch, in der Hoffnung, das mir geholfen werden, oder mir ein Denkanstoss gegeben werden kann.
Folgendes:
Ich habe eine CSV Datei, die mehrere Daten erhält.
Nun soll der User auf der Seite eine PLZ eingeben können, und
alle ergebnisse (ganze zeile) der CSV Datei, die diese PLZ enhält, soll
als neue CSV datei erstellt werden.
Beispiel:
Die CSV:
Code :1 2 3 4 5 6 7 8 9
ID,Name,Alter,Wohnort,PLZ,Status,WeitereDaten,WeitereDaten ,user1,12,zuHause,15645,bla,,bla ,user2,22,beiMama,12345,bla,,bla ,user3,45,beiOma,12345,bla,,bla ,user4,13,unterDerBrücke,12345,bla,,bla ,user5,15,zuHause,15645,bla,,bla ,user6,24,zuHause,12345,bla,,bla ,user7,23,BeiFreundin,15645,bla,,bla ,user8,10,zuHause,12345,bla,,bla
Der User/Kunde gibt nun auf der Seite in einem Suchfeld die PLZ ein:
15645
Als Ergebnis soll er eine neue Herunterladbare Datei bekommen,
mit dem Inhalt:
Code :1 2 3 4
ID,Name,Alter,Wohnort,PLZ,Status,WeitereDaten,WeitereDaten ,user1,12,zuHause,15645,bla,,bla ,user5,15,zuHause,15645,bla,,bla ,user7,23,BeiFreundin,15645,bla,,bla
Wie kann man soetwas OHNE MYSQL realisieren?
Mir raucht seit tagen der Kopf, da ich nie vorher mit CSV dateien gearbeitet habe...
Also die Datei öffenen und Daten ausgeben mit fgetcsv(); bekomme ich hin...
Suchen mit in_array() scheint mir nicht komfortabel, da ich immer nur die PLZ ausgegeben bekomme...
Ich brauche aber die ganze Zeile...
Wer kann helfen?
Geändert von sasser1981 (09.11.11 um 11:49 Uhr) Grund: BBCODE
-
Hey,
also an dem Punkt, wo du gegen die Plz pruefst, musst Du einfach die komplette Zeile wieder zusammen bauen und in einen Buffer speichern. Den Buffer haengst du dann an deine neue Datei an (fwrite).
Quasi so, pseudocode:
Code :1 2 3 4 5 6 7 8 9
$fh = fopen('neue-datei.csv'); while ( ($data = fgetcsv...)){ if( $data[3] == $_POST['plz'] ) { $line = implode(',', $data); fwrite( $fh, $line ); } } fclose( $fh ); sendFile( 'neue-Datei.csv' );Geändert von MArc (09.11.11 um 12:50 Uhr)
Kryn.cms - einfach anders.
"When you're talking about webserver, as it is, with no rules, well then, baby you'd better block every tiny hole of your server!" - MArc (inspired by Bruce L.)
-
09.11.11 13:29 #3
- Registriert seit
- Nov 2011
- Beiträge
- 9
Ok, das hilft mir beim erstellen der datei weiter...
Aber wie realisiere ich die Suche, die ja alle Zeilen wiedergeben soll... ?
ich habe gelesen das in_array() auch nicht sonderlich empfehlenswert sein soll...?!
-
Nun, die Zeile "if( $data[3] == $_POST['plz'] ) {" ist ja bereits die Suche
Denn mit dieser Condition werden nur Zeilen in die neue Datei geschrieben, die als Postleitzahl eben den Wert haben, den der User im Formular eingetippt hat. Leider ist das bei CSV so, dass man jede Zeile durchgehen muss, um dann zu entscheiden, ob jene Zeile angezeigt (oder in deinem Fall abgespeichert) werden soll.
Kryn.cms - einfach anders.
"When you're talking about webserver, as it is, with no rules, well then, baby you'd better block every tiny hole of your server!" - MArc (inspired by Bruce L.)
-
09.11.11 14:07 #5
- Registriert seit
- Nov 2011
- Beiträge
- 9
also muss ich qusi sagen
if( $data[33] == $_POST['plz'] ) { }
if( $data[65] == $_POST['plz'] ) { }
if( $data[97] == $_POST['plz'] ) { }
etc
ok... das hilft auch weiter...
Aber ein letztes:
Wie kann ich denn die Anzahl der zeilen bestimmen?
Denn dann würde ich sagen ich mach ne schleife...
i=33 (erste Plz)
und dann eine schleife i+32 (jede weitere plz)
if( $data[$i] == $_POST['plz'] ) { }
bis halt zur letzten Zeile...
Code :1 2 3 4 5
$zeilen=500; for ($i=33; $i < $zeilen; $i+=32) { echo "data[".$i."];"; }
Geht er auch so die letzte zeile durch? ich bin mir net sicher...
schon oder****?Geändert von sasser1981 (09.11.11 um 14:21 Uhr)
-
09.11.11 16:39 #6
- Registriert seit
- Nov 2011
- Beiträge
- 9
Vielen Dank =) Habs hinbekommen =)
Der Tipp mit "Leider ist das bei CSV so, dass man jede Zeile durchgehen muss,"
hats gebracht und die anzahl der zeilen habe ich mit
$Zeilen = count(file("$file"));
bestimmt...
Danke!
-
10.11.11 12:15 #7
- Registriert seit
- Nov 2011
- Beiträge
- 9
Sry für mehrfachpost, aber ich brauche noch nen denkanstoss...
Ich soll nun, eine CSV (dient als Datenbank)
Mit einer anderen CSV (kundendaten) abgleichen und dann alle
kunden aus die in beiden CSV vorhanden sind als neue CSV speichern.
Das ohne such eingabe. Einfach per klick
Beispiel
Datenbank.csv
stadt,plz,daten,daten,daten,daten,daten
berlin,12345,daten,daten,daten,daten,daten
hamburg,23456,daten,daten,daten,daten,daten
frankfurt,34567,daten,daten,daten,daten,daten
Potsdam,45678,daten,daten,daten,daten,daten
Kunden.csv
Name,stadt,plz,daten,daten,daten,daten,daten
Heinz,berlin,12345,daten,daten,daten,daten,daten
Peter,berlin,12345,daten,daten,daten,daten,daten
Jutta,berlin,12345,daten,daten,daten,daten,daten
Bernd,hamburg,23456,daten,daten,daten,daten,daten
Siggi,Erfurt,11125,daten,daten,daten,daten,daten
Bart,hamburg,23456,daten,daten,daten,daten,daten
Kai,frankfurt,34567,daten,daten,daten,daten,daten
Markus,Potsdam,45678,daten,daten,daten,daten,daten
Klaus,Potsdam,45678,daten,daten,daten,daten,daten
Ergibnis
Potsdam_CSV.csv
Markus,Potsdam,45678,daten,daten,daten,daten,daten
Klaus,Potsdam,45678,daten,daten,daten,daten,daten
Berlin_CSV.csv
Heinz,berlin,12345,daten,daten,daten,daten,daten
Peter,berlin,12345,daten,daten,daten,daten,daten
Jutta,berlin,12345,daten,daten,daten,daten,daten
hamburg_CSV.csv
Bernd,hamburg,23456,daten,daten,daten,daten,daten
Bart,hamburg,23456,daten,daten,daten,daten,daten
frankfurt_CSV.csv
Kai,frankfurt,34567,daten,daten,daten,daten,daten
SIGGI DARF NIRGENDS AUFTAUCHEN, DA SEINE PLZ NICHT IN DER DATENBANK.CSV STEHT!
Siggi,Erfurt,11125,daten,daten,daten,daten,daten
Mein Ansatz ****t leider nicht
Code :1 2 3 4 5 6 7 8 9 10 11
while (($data = fgetcsv($opencsv, $Zeilen, ";")) !== FALSE) #Datenbank { $pruef = $data[1]; foreach($pruef as $check) { while (($Kundendata = fgetcsv($opencsv_kunden, 2064, ",")) !== FALSE) { if($check==$Kundendata[3]) {
Bitte um Denkanstoss =(
Ähnliche Themen
-
Datei durchsuchen, anschließend Ergebnis ausgeben
Von D34DL1NES im Forum C/C++Antworten: 4Letzter Beitrag: 17.05.09, 11:41 -
Alle Tabellen und Spalten einer DB durchsuchen, und ergebnisse ausgeben
Von Kalma im Forum PHPAntworten: 3Letzter Beitrag: 10.09.06, 06:00 -
Datei durchsuchen und jeweils die 2. vorrige Zeile ausgeben
Von anti00Zero im Forum Linux & UnixAntworten: 3Letzter Beitrag: 08.09.06, 10:07 -
[c]Datei Durchsuchen/Ausgeben
Von sascha ak opi im Forum C/C++Antworten: 22Letzter Beitrag: 19.07.06, 09:01 -
Access Datenbank durchsuchen und Ergebnisse ausgeben
Von der_byte_b0zZ im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 18.07.05, 17:07





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren