Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa]Stronicowanie
piotrooo89
post
Post #1


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Jako że OOP od pewnego czasu znam czysto z teori postanowiłem napisać coś co mogłoby mi się przydać. Przerobiłem własny sturkturalny kod stronicowania i teraz prosze was o wszelkie uwagi, rady - konstruktywną krytykę - jak dla laika OOP.

index.php

  1. <?php
  2. include ('stronicowanie-class.php');
  3. include ('mysql.php');
  4.  
  5. if(empty($_GET['start']))
  6. {
  7.  $od = 1;
  8.  $_GET['page'] = 1;
  9. }
  10. else
  11. {
  12.  $od = mysql_escape_string($_GET['start']);
  13. }
  14.  
  15. $str = new Stronicowanie();
  16. $str->pokaz($od);
  17. $str->nawigacja($str->licz_rekordy());
  18. $str->pop_nas($_GET['start'], $str->licz_rekordy());
  19. ?>



stronicowanie-class.php

  1. <?php
  2. class Stronicowanie
  3. {
  4.  public $ile_na_stronie = 20;
  5.   
  6.  public function licz_rekordy()
  7.  {
  8.      $all = mysql_query('SELECT COUNT(*) FROM termin');
  9.      $ile = mysql_result($all, 0);
  10.      return $ile;
  11.  }
  12.  
  13.  public function pokaz($od)
  14.  {
  15.      $sql = mysql_query('SELECT * FROM termin LIMIT '.$od.', '.$this->ile_na_stronie.'');
  16.      while ($row = mysql_fetch_object($sql))
  17.      {
  18.          echo $row->id;
  19.          echo $row->data .'<br>';
  20.      }
  21.  }
  22.  
  23.  public function nawigacja($ile)
  24.  {
  25.      if($ile > $this->ile_na_stronie)
  26.      {
  27.          for($i=0 ; $i<ceil($ile/$this->ile_na_stronie) ; $i++) 
  28.          {
  29.              $b = $i + 1;
  30.              if ($_GET['page']==$b)
  31.              {
  32.                  echo '<a href="'.$_SERVER['PHP_SELF'].'?start='.($i*$this->ile_na_stronie).'&page='.($i+1).'">['.($i+1).']</a> | '; 
  33.              }
  34.              else
  35.              {
  36.                  echo '<a href="'.$_SERVER['PHP_SELF'].'?start='.($i*$this->ile_na_stronie).'&page='.($i+1).'">'.($i+1).'</a> | '; 
  37.              }
  38.          }
  39.      }
  40.  }
  41.  
  42.  public function pop_nas($naw, $ile)
  43.  {
  44.      $next = $naw + $this->ile_na_stronie;
  45.      $prev = $naw - $this->ile_na_stronie;
  46.   
  47.      if ($_GET['start'] == 0)
  48.      {
  49.          echo '<a href="'.$_SERVER['PHP_SELF'].'?start='.$next.'&page='.($_GET['page']+1).'">Następny ></a>';
  50.      }
  51.      elseif (($_GET['start'] > 0) && ($next < $ile))
  52.      {
  53.          echo '<a href="'.$_SERVER['PHP_SELF'].'?start='.$prev.'&page='.($_GET['page']-1).'">< Poprzedni</a> | '; 
  54.          echo '<a href="'.$_SERVER['PHP_SELF'].'?start='.$next.'&page='.($_GET['page']+1).'">Następny ></a>';
  55.      }
  56.      elseif ($next > $this->ile_na_stronie)
  57.      {
  58.          echo '<a href="'.$_SERVER['PHP_SELF'].'?start='.$prev.'&page='.($_GET['page']-1).'">< Poprzedni</a>';
  59.      }
  60.  }
  61. }
  62. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


A co jak chce stronnicować plik? To nie tak ma działać. Klasa pager ma obliczyć który plik (wiersz) teraz otworzyć oraz wygenerować sam pager. :]
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 17:39