Avatar billede fqthjoe Nybegynder
21. januar 2012 - 10:56 Der er 9 kommentarer og
1 løsning

Trække bestemte data udfra en csv fil

Hej eksperter.
Jeg har kigget lidt rundt omkring at få php til at læse i en csv fil, og udskrive data'ene på skærmen. Det ser ud til at virke fint.

Nu kunne jeg godt tænke mig om man kan trække bestemte data ud fra filen, eller kræver det istedet at data'ene er i en database i stedet for CSV-fil.

F.eks.:
CSV fil: navn, adresse, post, by.
Så vil jeg gerne lave en side hvor der er et tekstfelt man kan udfylde og en Submit knap man klikker på. Det skal kun være navn man søger på.
F.eks. man skriver Erik i tekstfeltet trykker på Submit (send)
og så returnere den data'ene i posten Erik.
så udskriften ligner ala det:
Navn  adresse post by
Erik  Hirsevej 12  4000  Bullerby

Kan det lave sig gøre ?
vh thjoe
Avatar billede olsensweb.dk Ekspert
21. januar 2012 - 12:34 #1
>eller kræver det istedet at data'ene er i en database i stedet for CSV-fil.
ved en db vil du gører din søgning meget nemmere, så det vil jeg anbefale

hvor stor er den CSV file ??
kunne man indlæse filen i et multi array, og søge med array_search http://www.php.net/manual/en/function.array-search.php

google "php search csv file" http://www.google.dk/search?q=php+search+csv+file
http://stackoverflow.com/questions/4465088/searching-csv-file-with-php
http://stackoverflow.com/questions/6426762/php-find-string-in-csv-file
Avatar billede claes57 Ekspert
21. januar 2012 - 12:39 #2
ja - jeg har fx noget kludderkode der henter nogle valtutaer fra en xml-fil uden at bruge xml'en - bare trave igennem slavisk. Optimalt langsomt og grimt kodet.
Du vil helst skifte til xml-fil -  sitemagic CMS kører fx udelukkende via xml-data hvis man fravælger database-muligheden.
Avatar billede fqthjoe Nybegynder
21. januar 2012 - 12:46 #3
Takker. Tjekker lige dine links.
CSV filen er rigtig stor, flere tusinde linier. Så huske skulle jeg istedet importere til en mysql-base istedet, og så lave søgningen via den. Måske går det hurtigere den vej. Testede et script uden et array, men synes bare med 300 linier, at det tager lidt tid at søge.
Om søgningen er hurtigere via database end direkte i en csv fil må vel komme an på en prøve, men måske er svaret givet på forhånd ?
Smid gerne et svar, så du kan få points.. Du har hjulpet mig på rette vej. Og tak for dit input.
/Thjoe
Avatar billede fqthjoe Nybegynder
21. januar 2012 - 12:48 #4
Ok, så lige nyt svar.. browser var åben bart ikke opdateret.. Er det en ide med XML istedet ?
/Thjoe
Avatar billede claes57 Ekspert
21. januar 2012 - 13:14 #5
xml er kun til meget få linjer (typisk under 50-100) - så lav en rutine, der smider data i en database.
Avatar billede olsensweb.dk Ekspert
21. januar 2012 - 14:49 #6
>CSV filen er rigtig stor, flere tusinde linier.
ja så er en db det rigtige

>Om søgningen er hurtigere via database end direkte i en csv fil må vel komme an på en prøve, men måske er svaret givet på forhånd ?
søgning i en fil (csv, xml, sql db) vil altid værer langsommere en søgning i memory, så du vil have noget performance ved at ligge det ind i et array og lave søgning deri, men det kræver en del memory med så stor en fil.

hvis du ligger det i en db, bør du nok overveje at normalisere tabellen, posnr/by er en seperat tabel, og kan bruges i rigtig mange andre sammenhæng
direkte link til postnummerfil_excel.xls
jeg har opdateret min egen postnummer sql fil for ca ½ år siden http://olsensweb.dk/guides/ajax/postnummer/postnummer.zip

eller en online vertion, der er rigtig spændende, som jeg selv er lige begyndt at lege med
alle postnummer
json http://geo.oiorest.dk/postnumre.json
xml  http://geo.oiorest.dk/postnumre.xml  default det sammen som http://geo.oiorest.dk/postnumre
html http://geo.oiorest.dk/postnumre.html

bestemt postnummer
json http://geo.oiorest.dk/postnumre/4000.json
xml  http://geo.oiorest.dk/postnumre/4000.xml default det sammen som http://geo.oiorest.dk/postnumre/4000
html http://geo.oiorest.dk/postnumre/4000.html
Avatar billede olebole Juniormester
21. januar 2012 - 16:13 #7
<ole>

- og skal du endelig læse en csv-fil, bør du nok bruge PHPs native csv-funktioner - f.eks. str_getcsv

/mvh
</bole>
Avatar billede fqthjoe Nybegynder
17. maj 2012 - 09:58 #8
Hej,
Undskyld det sene svar. Mange tak for svar. Det ser spændende ud, og har kigget det igennem. Imellemtiden er projektet blevet udskudt pga. manglende tid. Men gemmer jeres input.
1000 tak for input. Smider I lige svar så points kan gives.
/Thjoe
Avatar billede olsensweb.dk Ekspert
17. maj 2012 - 10:11 #9
får du her
Avatar billede olsensweb.dk Ekspert
17. maj 2012 - 10:11 #10
vi prøver igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester