Strona 1 z 1

[php] baza na plikach txt - jak przejść do następnej lini

: czw lut 26, 2004 10:36 pm
autor: hub_lan
Witam
mam nastepujący kłopot
(od razu mówie że w temacie php jestem cieniutki dla tego pliss o odpowiedzi jak dla matoła)
a teraz po kolei:

pobieram dane z pliku txt/csv linię i rozbijam ja na części
potem wyświetlam je po kolei i jest OK (przy pierwszej linii)

teraz pytanie jak zmusić php-a żeby przeczytał inną linie niż pierwszą ??
a konkretnie tę linię ktorą ja chcę ??

to jest przykładowa zawartść pliku txt/csv: "dane.csv"

Kod: Zaznacz cały

ID1|Imie1|Nazwisko1|Nazw Rod1|Data ur1
ID2|Imie2|Nazwisko2|Nazw Rod2|Data ur2
ID3|Imie3|Nazwisko3|Nazw Rod3|Data ur3
ID4|Imie4|Nazwisko4|Nazw Rod4|Data ur4
to jest plik *.php odczytujący dane:


[php]
<?php
$pl1="dane"
$pl2=".csv";
$pl=$pl1.$pl2;
$fs = fopen("$pl", "r");
$linia = fgets($fs, 800);
$id = explode("|", $linia);
echo("
<table><TR><td>".$id[0]."</td><td>".$id[1]."</td>
<td>".$id[2]."</Td><td>".$id[3]."</Td><td>".$id[4]."</Td></tr></table>
");
fclose($fs);
php?>
[/php]

z góry dzięki wielgachne za podpowiedź

wojtek vel hub_lan

Re: [php] baza na plikach txt - jak przejść do następnej lini

: pt lut 27, 2004 1:04 am
autor: Krzysztof Aszkiełowicz
funkcja [manual]file[/manual] zachowuje w tablicy plik np linia 1 pliku file.txt to:

[php]<?php
$file = file("file.txt");
echo $file[0];
?>[/php]

Re: [php] baza na plikach txt - jak przejść do następnej lini

: pt lut 27, 2004 11:22 am
autor: Michał Fikus
Cóż, użycie funkcji file() może być bardzo nieekonomiczne przy większej bazie. Lepiej wrzucić w pętle Twój skrypt i sprawdzać, czy spełniony jest warunek - np. pierwsza zmienna ma wartość 5. Dzięki temu możemy zaoszczędzić na ilości przetwarzanych danych. Przykładowo gdy mamy 50.000 lini a szukana dana jest w 5, to pętla wykona się 5 razy, pobierze pięc lini, a w wypadku użycia file() zostanie zaangażowana pamięć wymagana dla 50k lini.

Re: [php] baza na plikach txt - jak przejść do następnej lini

: pt lut 27, 2004 10:41 pm
autor: hub_lan
Witam ponownie
wielkie dzięki za wszystko
pomogło i chula jak miało
wojtek vel hub_lan
ps:
... Lepiej wrzucić w pętle Twój skrypt i sprawdzać, czy spełniony jest warunek - np. pierwsza zmienna ma wartoœć 5...
a mógłbym poprosić troszkę jaœniej
tak jak pisałem w php jestem jeszcze dziewicš ;)

Re: [php] baza na plikach txt - jak przejść do następnej lini

: ndz lut 29, 2004 11:11 am
autor: wixor
Tzn. żeby przeglądać plik linia po linii a nie ładować cały i później brać interesującą linię

Re: [php] baza na plikach txt - jak przejść do następnej lini

: ndz lut 29, 2004 11:11 am
autor: wixor
Chodzi o coś takiego:
[php]<?php
function getline($linenum)
{
$fd=fopen($file,"r"); flock($fd,LOCK_SH);
for($i=0;$i<$linenum;$i++) fscanf($fd,"%[^\n\r]",$line);
flock($fd,LOCK_UN);fclose($fd);
return $line;
}
?>[/php]

Re: [php] baza na plikach txt - jak przejść do następnej lini

: ndz lut 29, 2004 12:08 pm
autor: hub_lan
witam
dzięki wielkie
co prawda moja "baza" ma na razie jakieś 350 linii
po 70 kolumn ale stale rośnie (przybywa linii)
i na przyszłość moze się przydać to rozwiązanie
jeszcze raz dzieki
wojtek vel hub_lan