Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Stronicowanie katalogów
Forum PHP.pl > Forum > PHP
Gibcio2008
Witam !
Napotkałem się na następujący problem:

W katalogu głównym jest 100 podkatalogów i chciałbym zastosować stronicowanie żeby na stronie widocznych było po 10 katalogów, zastosowanie stronicowania na plikach nie daje rezultatów.

Proszę o pomoc - z góry dzięki.
phpion
Zapisz listę plików do tablicy, a potem wybierz odpowiedni zakres elementów tej tablicy (a'la LIMIT + OFFSET w MySQL) i wyświetl.
Gibcio2008
Nie ma żadnych plików.

Jeden główny katalog i w nim 100 podkatalogów.
phpion
I co to zmienia? Jeśli robi to dla ciebie jakąś różnicę to:
Cytat(phpion @ 21.06.2009, 18:56:28 ) *
Zapisz listę plików katalogów do tablicy, a potem wybierz odpowiedni zakres elementów tej tablicy (a'la LIMIT + OFFSET w MySQL) i wyświetl.
Gibcio2008
Wszystkiego próbowałem, i nic

  1. <?
  2.  
  3. $handle = opendir('users');
  4. while($file = readdir($handle))
  5. {
  6. if($file != '.' && $file != '..')
  7. {
  8. $files = file('users/'.$file.'/'.$file.'');
  9. foreach($files as $line)
  10. {
  11. $user = explode('||', chop($line));
  12. echo '<tr>';
  13. echo '<td width="20%">'.$user[0].'</td>';
  14. echo '<td width="20%"><a href="mailto:'.$user[4].'">'.$user[4].'</a></td>';
  15. echo '<td width="20%"><a href="GG:'.$user[5].'">'.$user[5].'</a></td>';
  16. echo '<td width="20%">'.$user[6].'</td>';
  17. echo '<td width="20%"><a href=".$user[7]." target="_BLANK">'.$user[7].'</td>';
  18. echo '</tr>';
  19. }
  20. }
  21. }
  22. closedir($handle);
  23. ?>
em1X
człowieku najpierw musisz pojąć co chcesz zrobić, nie uczyłeś się nigdy matematyki w ogóle?

postaw sobie na biurku 11 wykałaczek.. jakbyś miał je podzielić na 3 grupki to jak obliczysz ile grupek Ci wyjdzie? A jak policzysz, którą wykałaczkę chciałbyś obejrzeć zakładając, że chcesz pooglądać drugą grupkę. Wszystko się składa to paru operacji dodawania i dzielenia. W czym problem?
Gibcio2008
Problem w tym że nie wiem gdzie umieścić stronicowanie - przed $handle = opedir, czy po foreach
em1X
withstupidsmiley.gif

Twoje handle i foreach służy do wyświetlania katalogów.. co to ma wspólnego ze stronicowaniem?questionmark.gif

  1. <?php
  2. // katalog, ktory ma byc stronicowany
  3. $katalog='/twoj/adres/do/katalogu';
  4.  
  5. // ile katalogow na strone?
  6. $porcja=10;
  7.  
  8. if (!is_dir($katalog)) {
  9.   die('Taki katalog nie istnieje, popraw sciezke.');
  10. }
  11.  
  12. // pobieramy katalogi
  13. $lista=array();
  14. foreach(glob($katalog,GLOB_ONLYDIR) as $dir)
  15. {
  16.   if ($dir != '.' && $dir != '..')
  17.      $lista[]=$katalog;
  18. }
  19.  
  20. // obliczamy ilosc stron
  21. $ilosc_stron=ceil(count($lista)/$porcja);
  22.  
  23. // pobieramy z adresu, ktora strone wyswietlac
  24. $strona=intval(@$_GET['strona']);
  25.  
  26. // jezeli ktos przesadzil, z numerem strony to trzeba go poprawic
  27. $strona=$strona > $ilosc_stron || $strona < 0 ? 0 : $strona;
  28.  
  29. // wyswietlamy katalogi
  30. $od=$porcja*$strona;
  31. $do=($od+$porcja)-1;
  32.  
  33. // rysuj katalogi
  34. for ($i=$od; $i<=$do; $i++)
  35. {
  36.   print $lista[$i] . '<br/>';
  37. }
  38.  
  39. // rysuj stronicowanie
  40. print '<hr/>';
  41. for ($i=0; $i<$ilosc_stron; $i++)
  42. {
  43.   print '<a href="index.php?strona='.$i.'" alt="skok do strony '.($i+1).'>'.($i+1).'</a> ';
  44. }
  45. ?>


pisane z głowy bez żadnego sprawdzania więc nie dam ręki uciąć, że nie ma żadnych błędó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.