Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Stronnicwanie... operacja na plikach
Forum PHP.pl > Forum > Przedszkole
bimo
Witam
Jako iż jestem dość początkującym php'owcem więc muszę zasięgnąć porady specjalistów.
Zrobiłem Swój skrypt, opiera się na plikach tekstowych.

A więc tak: (streszczony skrypt)
___________________________________
////Otwiera plik z katalogu /kontakty/
$handle = opendir('kontakty/.');
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$file1=fopen("kontakty/".$file."", "r");
flock($file1, 1);
pobiera poprzez fgets ( każdą linijkę z osobna [/n])
$imie =fgets($file1, 500); /// Pierwszy plik:(Marian) Drugi plik: (Antek)
$nazwisko =fgets($file1, 500); /// Pierwszy plik: (Kleszczuk) Drugi plik: (Nowak)
$data =fgets($file1, 500); ///data dodania wpisu: pierwszy plik:(102007) Drugi plik: (102007)

////Następnie sprawdza czy test2 nie jest pusty

if($test!=='/n') {$imiep[$file]="Mam na imie $imie";}
if($test2!=='/n') {$nazwiskop[$file]=", nazwisko $nazwisko.";}


////Ostatnie wpisy:

$data1 = date("mY");
$data = ereg_replace("\n", "", $data);
$data = ereg_replace(" ", "", $data);
$data1 = ereg_replace(" ", "", $data1);
$data1 = ereg_replace("\n", "", $data1);

if($data==$data1) echo"Dane:$imiep[$file] $nazwiskop[$file] <br/>";

$nr++;
fclose($file1);
}

}
closedir($handle);
}
_________________________________________
Wyświetli:
Mam na imie Marian, nazwisko Kleszcuk
Mam na imie Antek, nazwisko Nowak

I tu pytanie jak zrobić stronnicowanie dla takiego skryptu?
Głównie chodzi mi jakich funkcji użyć, potem może sam coś wysmaruje winksmiley.jpg
Z góry dzięki
Speedy
W celu stworzenia stronicowania danych przechowywanych w pliku, najlepiej najpierw stwórz tablicę z tego pliku, a potem podziel ją na kawałki. Na podstawie ilości kawałków, ilości rekordów oraz ilości rekordów, które chcesz wyświetlić na jednej stronie, możesz ustalić ilość stron i wyświetlać odpowiednie linki (następna strona, poprzednia strona etc.). Odpowiednie funkcje znajdziesz w manualu pod hasłem array" title="Zobacz w manualu PHP" target="_manual.
matix
Ostatnimi czasy napisałem prosty pager do swojego frameworka. Aby działał, potrzeba danych w arrayu z numerami stron, czyli:

  1. <?php
  2. $aLiczby = array (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
  3. ?>


Specjalnie dla ciebie udostępniam go smile.gif

  1. <?php
  2. class pager {
  3.  
  4. private
  5. $aPages = '',
  6. $iNav = 0;
  7.  
  8. private static
  9. $iLimit = 5;
  10.  
  11. const
  12. linkback = '<div class=\"pager_link\"><a href=\"%s\">&laquo; ',
  13. linklike = '<div class=\"pager_link\"><a href=\"%s\">%s ',
  14. linkcurrent = '<div class=\"pager_link\"><a href=\"%s\">%s ',
  15. linknext = '<div class=\"pager_link\"><a href=\"%s\">&raquo;',
  16.  
  17. seperator = ' ... ' ;
  18.  
  19. public function __construct($aPages)
  20. {
  21. $this -> aPages = $aPages;
  22. }
  23.  
  24. public function render()
  25. {
  26. $oUri = new url;
  27. self::$iLimit = round(self::$iLimit/2);
  28.  
  29. if ($oUri -> getParam(1) == '') 
  30. $iStr = 1;
  31. else
  32. $iStr = $oUri -> getParam(1);
  33.  
  34. $iBack = ($iStr == '' || $iStr == 1) ? $oUri->build(array('index','page', '1')) : $oUri->build(array('index', 'page', $iStr-1));
  35.  
  36. $iNext = ($iStr == count($this->aPages))$oUri -> build(array('index', 'page', count($this -> aPages))) : $oUri->build(array('index', 'page', $iStr+1));
  37.  
  38. $sPattern = sprintf(self::linkback, $iBack);
  39.  
  40. foreach ($this->aPages as $sPage)
  41. {
  42. $iCurrent = ($iStr == '') ? 1 : $iStr;
  43.  
  44. if ($iCurrent <= $sPage) {
  45. if ($iCurrent+self::$iLimit > $sPage) {
  46.  
  47. $sLink = ($iStr == $sPage) ? self::linkcurrent : ($iStr == '' && $sPage == 1) ?self::linkcurrent : self::linklike;
  48.  
  49. $sPattern .= sprintf($sLink, $oUri->build(array('index', 'page', $sPage)), $sPage);
  50.  
  51. }else{
  52.  
  53. $sPattern .= sprintf(self::linklike, $oUri->build(array('index', 'page', $iStr)),self::seperator);
  54. break;
  55.  
  56. }
  57. }else{
  58.  
  59. if ($iCurrent < $sPage+self::$iLimit) {
  60.  
  61. $sLink = ($iStr == $sPage) ? self::linkcurrent : ($iStr == '' && $sPage == 1) ?self::linkcurrent : self::linklike;
  62.  
  63. $sPattern .= sprintf($sLink, $oUri->build(array('index', 'page', $sPage)), $sPage);
  64. }
  65.  
  66. }
  67.  
  68.  
  69. }
  70.  
  71. $sPattern .= sprintf(self::linknext, $iNext);
  72.  
  73. return $sPattern;
  74. }
  75.  
  76. }
  77. ?>


Tworzy on linki w postaci
Kod
<< ... 5 6 7 8 9 ... >>


Aby działał, musisz go sobie troche przerobić, między innymi URL-e.

Pozdro smile.gif
bimo
#Speedy już chyba 3 podejście do array'a tyle ze dalej nic z tego nie rozumiem...
Chyba nie ma nic tródniejszego niż ten nieszczęsny array!

#Matrix dzięki wielkie winksmiley.jpg a to mój pełny kod do wglądu
Pod co mam podstawić ten array $aLiczby? pod jakie tablice w moim skrypcie? [$file] ?
Dzięki winksmiley.jpg
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.