Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie daty
Krisu
post 22.01.2007, 13:33:54
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

Ostrzeżenie: (0%)
-----


  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?
Go to the top of the page
+Quote Post
cadavre
post 22.01.2007, 22:42:03
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


  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. ?>


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post
miggie
post 22.01.2007, 23:50:06
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Rudziniec

Ostrzeżenie: (0%)
-----


Cytat
while ($i==10);


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

?
Go to the top of the page
+Quote Post
Krisu
post 23.01.2007, 10:25:40
Post #4





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:17