Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Wyciaganie i sortowanie poszczegolnych danych z pliku
Forum PHP.pl > Forum > Przedszkole
Anonymous
Mając plik:
np.
Kod
5|plik1|opis1|01.03.2004

3|plik2|opis2|02.12.2003

33|plik3|opis3|03.02.2004

42|plik4|opis4|03.03.2001

25|plik5|opis5|12.05.2002

23|plik6|opis6|14.08.1999

21|plik7|opis7|12.04.2004

26|plik8 graficzny|opis8|18.05.2004


Jak zrobic zeby wyswietlalo dane z 3 lini, w ktorych daty sa
najświezsze, w taki sposób:

1. <a href=download.php?numer=plik8 graficzny>plik graficzny</a>
2. <a href=download.php?numer=plik7>plik7</a>
3. <a href=download.php?numer=plik5>plik5</a>
maulus
z tego co widze, najnowsze wpisy masz zawsze na, końcu jeśli nie ma wyjątków może poprostu je pobrać??
zombie
[manual:469e3b1b54]file[/manual:469e3b1b54] -> [manual:469e3b1b54]explode[/manual:469e3b1b54] -> [manual:469e3b1b54]mktime[/manual:469e3b1b54] -> [manual:469e3b1b54]sort[/manual:469e3b1b54] -> [manual:469e3b1b54]foreach[/manual:469e3b1b54]
:wink:
hwao
[php:1:bb663b5d5e]<?php
$strData = '03.03.2001';

$arrEx = explode( '.', $strData );
$strTime = mktime( '0', '0', '0', $arrEx['1'], $arrEx['0'], $arrEx['2'] );

?>[/php:1:bb663b5d5e]

Taki czas dopiero mozesz porownywać, zeby Ci posegregowało dobrze.

[php:1:bb663b5d5e]<?php

$arrFile = file( 'plik.txt' );

$arrDane = array();
foreach( $arrFile AS $strLine )
{
$arrDane[] = explode( '|' $strLine );
}

?>[/php:1:bb663b5d5e]

Teraz doklej do tego ten 'czas' co jest u gory i poisegreguj wg niego i będziesz miał.

A co do czasu to zeby go wyświetlic w takiej formie jak Ty masz to
[php:1:bb663b5d5e]<?php
echo data( 'd.m.y', $strTime );
?>[/php:1:bb663b5d5e]
treewood
"$strTime = mktime( '0', '0', '0', $arrEx['1'], $arrEx['0'], $arrEx['2'] );"

php pozwala na wszystko ale int'y bym nie wstawial w cudzyslowia ... bo to nie string
Anonymous
Hmm, żeby juz nie mieszac to napiszecie mi maly kodzik, ktory bedzie wyswietlal w podany wyzej sposob, ale tylko 3 pierwsze linie z pliku.
hwao
Jak juz masz ta $arrDane tablice to robisz tak (mam nadzieje ze sobie juz ja ladnie posortowales smile.gif )
[php:1:a85af70f55]<?php
$intCount = count( $arrDane );
$intLoop = ( $intCount > 3 ? '3' : $intCount );
for($i=0; $intLoop > $i; $i++){
echo $arrDane[$i];
}

?>[/php:1:a85af70f55]
Powinno działac
scanner
Cytat
[php:1:8093c65e75]<?php
$strCount = count( $arrDane );
$strLoop = ( $arrDane > 3 ? '3' : $arrDane );
for($i=0; $strLoop > $i; $i++){
echo $arrDane[$i];
}

?>[/php:1:8093c65e75]
Powinno działac
A mozesz mi powiedziec, co ten kod ma robić? Pamiętając o ntypach zmiennych? Bo jak dsla mnie to to jest dziwne..
String przyrówniujesz do inta.. array przypisujesz do stroinga..
string wkladasz w licznik pętli...
I to co napisałeś na penwonie wyświetli trzech pierwszych linii...

[php:1:8093c65e75]<?php
$arrDane = file( 'plik.txt' );
$intLoop = 0;
while( $intLoop < 3 )
{
echo $arrDane[$intLoop++];
}
?>[/php:1:8093c65e75]
hwao
qrcze rzeczywiscie :oops:
Sorka zaraz poprawie
Btw:
Nie wiem czy u Ciebie nie posypie sie jezeli w pliku(tablicy) bedzie mniej niz 3 linie
Anonymous
Chyba sobie nie poradze z tym posortowaniem sad.gif, pomożecie mi?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.