Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Paginacja plików z katalogu, zmieniające sie url
b_chmura
post
Post #1





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


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
Go to the top of the page
+Quote Post
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


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ę ...
Go to the top of the page
+Quote Post
b_chmura
post
Post #3





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


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

Ten post edytował b_chmura 16.05.2007, 22:39:12
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


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).
Go to the top of the page
+Quote Post
b_chmura
post
Post #5





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


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

Ten post edytował b_chmura 17.05.2007, 09:45:17
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.09.2025 - 01:47