Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]paginacja
Forum PHP.pl > Forum > Przedszkole
rybenia
WItam, mam taki kod paginacji
  1. define('ILOSC_WYNIKOW_NA_STRONIE', 5);
  2.  
  3. $row = "SELECT SQL_CALC_FOUND_ROWS *
  4. FROM lista
  5. ORDER BY id ASC
  6. LIMIT ".mysql_escape_string((int)$_GET['porcja']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  7. // pobiera ILOSC_NA_STRONIE rekordów z bazy, sortując wg daty rosnąco, zaczynając od $_GET['porcja']*ILOSC_NA_STRONIE
  8. $qw = mysql_query($row); // wykonujemy zapytanie
  9. $row = "SELECT FOUND_ROWS() as Ilosc";
  10. $qw= mysql_query($row);
  11. list($iloscWpisow) = mysql_fetch_row($qw);
  12. include('home.php');
  13. ?>
  14.  
  15.  
  16. <div id="content">
  17. <div class="contenthead">
  18.  
  19. <h2>Kursy</h2>
  20. </div><!-- .contenthead -->
  21. <div class="contenttable">
  22.  
  23. <table>
  24. <tr>
  25. <td class="namehead">Nazwa</td> <td class="opishead">Opis</td> <td class="uwagihead">Uwagi</td>
  26. </tr>
  27. <?php while($s = mysql_fetch_array($qw)) {
  28. $kodzik = MD5($rekord['email'].$s['kod']);
  29. ?>
  30. <tr>
  31.  
  32. <td class="name"><a class="bold-cyan" href="#"><?php echo $s['nazwa'];?></a></td> <td class="opis"><?php echo $s['opis'];?></td>
  33. <?php switch(nitrolista_autoresponder($s['program'],$s['u_id'],$s['kod'],$rekord['email'])){
  34. case 'zapis':?>
  35. <td class="uwagi"><a href="panel.php?akcja=<?php echo $s['u_id'];?>"><img src="images/zapisz_sie.png" alt="Zapisz się!" border="0"/></a></td>
  36. <?php break;
  37. case 'potwierdz': ?>
  38. <td class="uwagi"><a href="#"><img src="images/potwierdz_zapis.png" alt="Potwierdź zapis!" border="0"/></a></td>
  39. <?php break;
  40. case 'loguj': ?>
  41. <td class="uwagi"><a href="#"><img src="images/zgarnij_punkty.png" alt="Potwierdź zapis!" border="0"/></a></td>
  42. <?php break;
  43. }
  44.  
  45. ?> </tr>
  46. <?php }
  47. if($_GET['porcja']>0){
  48. //wyswietlamy link do poprzedniej strony
  49. echo '<a href="?porcja='.($_GET['porcja']-1).'">Poprzednie</a> ';
  50. }
  51.  
  52. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  53. echo '<a href="?porcja='.($i).'">[ '.($i+1).' ]</a> ';
  54. }
  55. //jeśli nie jesteśmy na ostatniej stronie
  56. if($_GET['porcja']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE)){
  57. //wyświetlamy link do nastepnej strony
  58. echo ' <a href="?porcja='.($_GET['porcja']+1).'">następne</a>';
  59. }


Na górze wyświetla mi 5 linków, lecz wszystkie rekordy i tak są na stronie 1.
Macie jakieś pomysły?
r4xz
leżysz na samym początku...
pomyśl nad LIMIT'em dla zapytania do DB
np. strona 1 => wyniki 1-5
strona 2 => wyniki 6-10

wnioski: LIMIT ( aktualna_strona - 1 ) * liczba_wyników_na_stronę, liczba_wyników_na_stronę

--EDIT--
dalej też masz meksyk z tym nadpisywaniem zmiennych...
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.