Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie wartości zmiennych
Forum PHP.pl > Forum > PHP
Krisu
Problem tyczy sie odnosnie sortowania wartości zmiennych.

Mam

  1. <?php
  2. $plik=file("baza/spr/spr.txt");
  3.  foreach($plik as $linia)
  4.  {
  5. $dane=explode("||", $linia);
  6.  $przedmiot=$dane[0];
  7.  $dataspr=$dane[1];
  8.  $info=$dane[2];
  9.  $nr=$dane[3];
  10.  
  11.  $data = Date("j.m");
  12.  
  13.  if($data <= $dataspr){
  14. echo "<img src="index/a.gif"><b>$dataspr</b> - $przedmiot<br>";
  15. }
  16. }
  17. ?>


no i chcialbym zeby po kolei wszystkie wpisy sortowały się od największej $dataspr do najniższej wg wzoru.
Najlepiej by bylo, gdyby zostały wyświetlone wpisy tylko z ostatniego tygodnia.
misiek172
ciężko mi było zrozumieć twój opis problemu, najpierw ustaw w pętli aby tworzyła dane według kolejności daty, potem aby wyświetlało do max tydzień starej:

  1. <?php
  2. $data = time();
  3. $data_min = time() - (7*24*60*60);
  4.  
  5. if($dataspr >= $data_min){
  6.  
  7. }
  8. ?>


tylko że w powyższym przypadku $dataspr musi byc w formacie mktime, czyli w sekundach od 1970 roku, inaczej musisz ją zgenerować, przykładowo jeśli ma format date('d.m'); to robisz tak:

  1. <?php
  2. $d = explode('.', $dataspr);
  3. $dataspr = mktime('', '', '', $d[1], $d[0], '');
  4. ?>
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. $tydzien = $c[0]+'14';
  20.  
  21. if($c[2] < $d[2])//rok
  22. {
  23. echo "<img src="index/a.gif"><b>$d[0].$d[1].$d[2]</b> - $przedmiot<br>";
  24. }
  25. elseif ($c[2] == $d[2])//rok
  26. {
  27. if($c[1] < $d[1])//miesiąc
  28. {
  29. echo "<img src="index/a.gif"><b>$d[0].$d[1].$d[2]</b> - $przedmiot<br>";
  30. }
  31. elseif ($c[1] == $d[1])//miesiąc
  32. {
  33. if($c[0] <= $d[0])//dzień
  34. {
  35. echo "<img src="index/a.gif"><b>$d[0].$d[1].$d[2]</b> - $przedmiot<br>";
  36. }
  37. }
  38. }
  39. }
  40. ?>


Zrobiłem to w taki sposób i chyba wszystko dziala. Teraz mam banalny błąd bo nie wiem jak mam zrobić, żeby wyświetliło mi sie tylko 5 pierwszych wyników.
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.