Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Paginacja plików z katalogu
Forum PHP.pl > Forum > PHP
b_chmura
Witam mam mały problemik mianowicie gdy dodam nowy plik automatycznie linki do pozostałych wzrastają o jeden a najnowszy = 1 czyli do każdego pliku automatycznie zmieniają sie linki... jest to dość nie komfortowe

moje pytanie brzmi jak temu zapobiec?

pomyślałem sobie żeby odwrócić jakoś działanie zmiennej $i i każdy to nowo dodany plik będzie miał wartość o jeden większą od poprzednio dodanego (dzięki czemu to nowe będą miały inne linki a nie stare)...

nie potrafię ostatnio logicznie myśleć dlatego zwracam sie do was o pomoc


o to kawałek kodu:
  1. <?php
  2. $katalog = $_GET['kat'];
  3. $str = $_GET['str']; 
  4. //[..] tutaj sortuje $file_sort według daty modyfikacji
  5. foreach($file_sort as $linia) { 
  6. $i++;
  7. if(stristr($linia,'.jpg') OR stristr($linia,'.jpeg')) { 
  8. if($i == $str) { 
  9. echo '<img width="400" height="400" src='.$katalog.'/'.$linia.'>'."n"; 
  10. $link .= $i;
  11. }
  12. else {
  13.  
  14. if($str != 1) {
  15.  
  16. $prev = '<a href="?str='.($str-1).'&kat='.$katalog.'"><</a>'."n";
  17.  
  18. }
  19. $link .= '<a href="?str='.$i.'&kat='.$katalog.'">'.$i.'</a>'."n"; 
  20. if($str < $i) {
  21.  
  22. $next = '<a href="?str='.($str+1).'&kat='.$katalog.'">></a>'."n"; 
  23.  
  24. }
  25. } 
  26.  
  27. } 
  28. } 
  29. echo '<div align="center"><table border="0" width="80%" cellspacing="0" cellpadding="0">
  30. <tr>
  31. <td>'.$prev.'</td>
  32. <td><p align="center">'.$link.'</a>
  33. <td><p align="right">'.$next.'</p></td>
  34. </tr>
  35. </table></div>';
  36. ?>


ps: myślałem też przypisać jakieś id konkretnemu plikowi (np. do nazwy pliku)

pozdrawiam
Chmura
Darti
Na podstawie kodu, który dałeś, trudno mi cokolwiek sensownego wymyślić.
Zastosuj array_reverse($file_sort) przed foreach i sprawdź czy takie coś daje radę ...
b_chmura
array_reverse jedynie odwróci mi wyświetlany wynik

Cytat(Darti @ 16.05.2007, 23:30:19 ) *
Na podstawie kodu, który dałeś, trudno mi cokolwiek sensownego wymyślić.


to jest cały kod, jedynie nie wklejałem jak sortuje bo niczemu to nie przysłuży a tylko skrypt unieczytelni
Darti
Chodziło mi o to, że $file_sort zawiera macierz plików z katalogu posortowane wg daty utworzenia. Najnowsze pliki masz na początku (indeksy początkowe) a najstarsze na końcu. Może dlatego dodając nowy plik zmienia się indeks starszych.
Odwróć macierz żeby najnowsze były na końcu albo zmień funkcję odczytującą katalog (to właśnie ten brakujący kawałek kodu).
b_chmura
myśmy sie troszkę źle zrozumieli...
owszem jest to rozwiązanie ale wtedy moja sortacja nie miała by znaczenia (specjalnie posortowałem żeby najnowsze mieć na początku) dlatego kombinowałem żeby odwrócić samo przypisywanie strony

wpadłem na pomysł żeby zliczyć pliki w katalogu i od jej sumy odejmować kolejno $i (czyli po jednym)
podołało by to zadaniu?

jak sie wam wydaje?



EDIT:

Tak spełniło to swoje zadanie:
- Zliczyłem ile jest plików w katalogu
- kolejno odejmowałem od sumy plików po 1
- odwróciłem Tablice

efekt zadowalający
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.