Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie daty
Forum PHP.pl > Forum > PHP
Krisu
  1. <?php
  2. $plik = file("baza/spr/spr.txt");
  3. foreach($plik as $linia){
  4. $dane = explode("||", $linia);
  5. $przedmiot = $dane[0];
  6. $typ = $dane[1];
  7. $dataspr = $dane[2];
  8. $info = $dane[3];
  9. $nr = $dane[7];
  10.  
  11. $data = Date("j.m.y");
  12.  
  13. $d = explode('.', $dataspr);
  14. $dataspr = mktime("$d[0], $d[1], $d[2], $d[3], $d[4], $d[5]");
  15.  
  16. $c = explode('.', $data);
  17. $data = mktime("$c[0], $c[1], $c[2], $c[3], $c[4], $c[5]");
  18.  
  19. $wyswietl = "<img src="index/a.gif"><b>$d[0].$d[1].$d[2]</b> - $przedmiot<br>";
  20.  
  21. if($c[2] < $d[2])//rok
  22. {
  23. echo "$wyswietl";
  24. }
  25. elseif ($c[2] == $d[2])//rok
  26. {
  27. if($c[1] < $d[1])//miesiąc
  28. {
  29. echo "$wyswietl";
  30. }
  31. elseif ($c[1] == $d[1])//miesiąc
  32. {
  33. if($c[0] <= $d[0])//dzień
  34. {
  35. echo "$wyswietl";
  36. }
  37. }
  38. }
  39. }
  40. ?>


to jest program ktory mi wyswietla wszystkie terminy, ktorych jeszcze nie było.

Chcialbym jednak zeby wyswietlal tylko 10 wartosci. Jak mam to zrobic?
cadavre
  1. <?php
  2.  
  3. $plik = file("baza/spr/spr.txt");
  4. $i=0;
  5.  
  6. do {
  7. foreach($plik as $linia){
  8. $dane = explode("||", $linia);
  9. $przedmiot = $dane[0];
  10. $typ = $dane[1];
  11. $dataspr = $dane[2];
  12. $info = $dane[3];
  13. $nr = $dane[7];
  14.  
  15. $data = Date("j.m.y");
  16.  
  17. $d = explode('.', $dataspr);
  18. $dataspr = mktime("$d[0], $d[1], $d[2], $d[3], $d[4], $d[5]");
  19.  
  20. $c = explode('.', $data);
  21. $data = mktime("$c[0], $c[1], $c[2], $c[3], $c[4], $c[5]");
  22.  
  23. $wyswietl = "<img src="index/a.gif"><b>$d[0].$d[1].$d[2]</b> - $przedmiot<br>";
  24.  
  25. if($c[2] < $d[2])//rok
  26. {
  27. echo "$wyswietl";
  28. }
  29. elseif ($c[2] == $d[2])//rok
  30. {
  31. if($c[1] < $d[1])//miesiąc
  32. {
  33. echo "$wyswietl";
  34. }
  35. elseif ($c[1] == $d[1])//miesiąc
  36. {
  37. if($c[0] <= $d[0])//dzień
  38. {
  39. // czyli znaczy że ten powinien pokazać?
  40. echo "$wyswietl";
  41. $i++;
  42. }
  43. }
  44. }
  45. }
  46. }
  47. while ($i==10);
  48.  
  49. ?>
miggie
Cytat
while ($i==10);


a nie
  1. <?php
  2. while ($i<=10);
  3. ?>

?
Krisu
co do:
Cytat
while ($i==10);

to dobrze jest wlasnie tak bo w innym wypadku petla wykonuje sie w nieskonczonosc.

Co do
Cytat
// czyli znaczy że ten powinien pokazać?
echo "$wyswietl";
$i++;

To zalezy od warunku, bo najpierw jest sprawdzany czy rok sie zgadza, jesli tak to co zrobic jesli nie, to takze co ma zrobic... i idzie tak az do dnia.

Niestety jednak w pliku tekstowym mam 22 wpisy w kolejnych liniach,
Cytat
Matematyka||sprawdzian||07.02.07||Caloroczny sprawdzian||19.12.2006||11:33:46||1||

wyglada to wlasnie tak, ale nadal wyswiatla mi wszystkie wpisy. Niestety nie jest mi to na reke bo strasznie strone rozwala, dlatego chcialem to ograniczyc do max 10 wpisow.
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.