witam, napisałem funkcję paginacji (w oparciu o książke i internet) i chciałbym prosić was o spojrzenie swoim fachowym okiem oraz wskazanie co mozna w niej dopracować, usprawnic. Funkcja działa, jednak wysyła metodą GET kazdorazowo dwie zmienne i to trochę denerwuję. Oto funkcja:
  1. define('ILOSC_NA_STRONIE',15);
  2. $zapytanie = "SELECT COUNT(*) FROM artykul";


  1. function paginacja($zapytanie){
  2. global $dbc;
  3. $zapytam = mysqli_query($dbc,$zapytanie);
  4. if(isset($_GET['p']) && is_numeric($_GET['p'])){
  5. $stron= $_GET['p'];
  6. }
  7. else{
  8. $ilosc_r_w_bazie = mysqli_fetch_array($zapytam);
  9. $ilosc_w_bazie = $ilosc_r_w_bazie[0];
  10. if($ilosc_w_bazie > ILOSC_NA_STRONIE){
  11. $stron = ceil($ilosc_w_bazie/ILOSC_NA_STRONIE);
  12. }
  13. else{
  14. $stron = 1;
  15. }
  16. }
  17. if(isset($_GET['s']) && is_numeric($_GET['s'])){
  18. $start=$_GET['s'];
  19. }
  20. else{
  21. $start = 0;
  22. }
  23.  
  24. $query = mysqli_query($dbc,"SELECT artykul.id,artykul.nazwa,id_kategorii_a,tresc_art FROM artykul ORDER BY id DESC LIMIT $start,".ILOSC_NA_STRONIE);
  25. while($wynik = mysqli_fetch_array($query)){
  26.  
  27. ?>
  28. <div id="artykul"><div id="cz_tresci">
  29. <div id="tytul">
  30. <?php echo $wynik['nazwa']; ?>
  31. </div>
  32. <div id="tagi">
  33. <?php
  34. $zapytan = mysqli_query($dbc,"SELECT slowo_klucz.nazwa FROM slowo_klucz INNER JOIN artykul_zawiera ON slowo_klucz.id=artykul_zawiera.id_klucza WHERE id_artykulu={$wynik[id]}");
  35. while($wyn = mysqli_fetch_array($zapytan)){
  36. echo $wyn[0].', ';
  37. }
  38. ?>
  39. </div>
  40. <div id="tresc">
  41. <?php
  42. $reszta = skroc_artykuly($wynik['tresc_art'],175);
  43. echo $reszta.'&nbsp;<a href="index.php?id='.$wynik['id'].'">&nbsp;<img src="images/strzalki.jpg" alt="więcej"/></a>';
  44. ?>
  45. </div>
  46. </div>
  47. <div id="cz_zdjecia">
  48. </div>
  49. </div>
  50. <?php
  51.  
  52. }
  53. if($stron > 1){
  54. $bierzaca_strona=($start/ILOSC_NA_STRONIE) + 1;
  55. }
  56. if($bierzaca_strona > 1){
  57. echo '<a href="index.php?s='.($start - ILOSC_NA_STRONIE).'&stron='.$stron.'">Poprzednia</a>';
  58. }
  59. for($i=1;$i<=$stron;$i++){
  60. if($i!=$bierzaca_strona){
  61. echo '<a href="index.php?s='.((ILOSC_NA_STRONIE * ($i-1))).'&stron='.$stron.'"> '.$i.'</a>';
  62. }
  63. else{
  64. echo $i.' ';
  65. }
  66. }
  67.  
  68. if($bierzaca_strona != $stron){
  69. echo '<a href="index.php?s='.($start+ILOSC_NA_STRONIE).'&stron='.$stron.'">Następna</a>';
  70. }
  71. }