Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Paginacja
plej
post
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Witam (IMG:style_emoticons/default/haha.gif)
Bo mam kod paginacji i pobiera mi wszystkie dane z tabeli tzn. je zlicza i na każdej stronie jest paginacja wszystkich rekordów choć mam warunek to ja lepiej kod dam (IMG:style_emoticons/default/smile.gif)
view.php:
  1. <?php
  2. $tytul = "Życzenia";
  3. include('naglowek.php');
  4. include('gora.php');
  5. include('db.php');
  6. ?>
  7.  
  8. <div id="templatemo_background_section_mid">
  9. <div class="templatemo_container">
  10. <div id="templatemo_content_area">
  11. <div id="templatemo_left_section">
  12.  
  13. <div class="templatemo_left_section_box">
  14.  
  15. <?php
  16.  
  17. $subpage = $_GET['page'];
  18. $perPage = 15;
  19. if (!empty($_GET['subpage']) && (is_numeric($_GET['subpage'])))
  20. {
  21. $subpage = (int) $_GET['subpage'];
  22. }
  23. if ($subpage < 1)
  24. {
  25. $subpage = 1;
  26. }
  27.  
  28. $start = ($subpage - 1) * $perPage;
  29.  
  30. // $query = "SELECT * FROM wszystko WHERE id_kategori=$id_kate";
  31. // $result = mysql_query($query) or die(mysql_error());
  32. // $idd = mysql_fetch_array($result);
  33. // $iddd = $idd["id"];
  34. $id_kate = $_GET["id_kategorii"];
  35. $zapytanie = 'SELECT * FROM wszystko WHERE id_kategorii='.$id_kate.' ORDER BY id DESC LIMIT '.$start.', '.$perPage.'';
  36. $idzapytania = mysql_query($zapytanie)or die(mysql_error());
  37. $max = "SELECT COUNT(*) as max FROM wszystko";
  38. $max_query = mysql_query($max);
  39. $maxrecords = mysql_fetch_array($max_query);
  40.  
  41. if(mysql_real_escape_string((!isset($_GET['id'])) or empty($_GET['id'])))
  42. {
  43.  
  44. while ($wiersz = mysql_fetch_array($idzapytania))
  45. {
  46. $id = $wiersz["id"];
  47. $id_kategorii = $wiersz["id_kategorii"];
  48. $tytul = $wiersz["tytul"];
  49. $uzytkownik = $wiersz["uzytkownik"];
  50. $data = $wiersz["data"];
  51. $tresc = $wiersz["tresc"];
  52.  
  53. echo '<a href="pokaz.php?id='.$id.'&tytul='.$tytul.'"><div class="templatemo_left_section_box_top">'.$tytul.'</div></a>';
  54. echo '<div class="templatemo_left_section_box_body">'.substr($tresc, 0, 50).'... <a href="">Czytaj dalej</a><br/>';
  55. echo '<span class="post"><b>Dodał:</b> <a href="#">'.$uzytkownik.'</a></span>';
  56. echo '<span class="post"><b>Dodano:</b> '.$data.'</span>';
  57. echo '</div>';
  58. }
  59.  
  60. }
  61. $prev = $subpage - 1;
  62. $next = $subpage + 1;
  63. $id_kate = $_GET["id_kategorii"];
  64. $prevLink = 'view.php?page='.$prev.'&id_kategorii='.$id_kate;
  65. $nextLink = 'view.php?page='.$next.'&id_kategorii='.$id_kate;
  66. $ilosc_wierszy = $maxrecords['max'];
  67. if($subpage > 1)
  68. echo'<center><a style="text-decoration: none;" href="'.$prevLink.'">Poprzednia strona </a>';
  69. $stron=ceil($ilosc_wierszy/$perPage);
  70. for($i=1; $i<=$stron; ++$i)
  71. {
  72. if($i==$subpage)
  73. echo '<b>'.$i.'</b> ';
  74. else
  75. echo '<a style="text-decoration: none;" href="view.php?page='.$i.'&id_kategorii='.$id_kate.'">'.$i.' </a>';
  76. }
  77. if($subpage < $stron)
  78. echo '<a style="text-decoration: none;" href="'.$nextLink.'"> Następna strona</a>';
  79.  
  80. ?>
  81. </center>
  82. </div>
  83. </div>
  84. </div><!-- End Of left Section -->
  85. <?php
  86. $id = (int) $_GET["id_kategorii"];
  87. if ($id >= 1 && $id <= 43) {
  88. include('kategorie.php');
  89. }
  90. if ($id >= 44 && $id <= 69) {
  91. include('kategorie-wiersze.php');
  92. }
  93. if ($id >= 70 && $id <= 90) {
  94. include('kategorie-cytaty.php');
  95. }
  96. if ($id >= 91 && $id <= 104) {
  97. include('kategorie-sms.php');
  98. }
  99. if ($id >= 105 && $id <= 142) {
  100. include('kategorie-opisy.php');
  101. }
  102.  
  103. include('prawa-strona.php');
  104. include('stopka.php');
  105. ?>
  106.  
  107.  
  108.  

tabela:
  1. CREATE TABLE wszystko (
  2. `id` INT(11) NOT NULL AUTO_INCREMENT,
  3. `id_kategorii` INT(11) NOT NULL,
  4. `tytul` VARCHAR(50) NOT NULL,
  5. `tresc` TEXT NOT NULL,
  6. `uzytkownik` VARCHAR(30) NOT NULL,
  7. `data` TEXT NOT NULL,
  8. PRIMARY KEY (`id`)
  9. );


A tu jest screnn : http://zapodaj.net/4f27d48a8309.png.html

a teraz po zobaczeniu wszystkiego lepiej wiadomo o co chodzi i jeszcze wytłumaczę
linia 36
  1. $zapytanie = 'SELECT * FROM wszystko WHERE id_kategorii='.$id_kate.' ORDER BY id DESC LIMIT '.$start.', '.$perPage.'';


Ma spełnić warunek i pobrać ilość id ale jeśli warunek jest okey aaa choć warunek jest to na pierwszej stronie jest wszystko dobrze itd.
ale jak już wejdę na inną kategorie to już nie jest dobrze bo wyświetla mi paginacje wszystkich rekordów i nie wiem jak to zrobić (IMG:style_emoticons/default/smile.gif)
Ma ktoś na to jakąś rade?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




$zapytanie = 'SELECT * FROM wszystko WHERE id_kategorii='.$id_kate.' ORDER BY id DESC LIMIT '.$start.', '.$perPage.'';
$max = "SELECT COUNT(*) as max FROM wszystko";
Rekordy pobierasz z kategorii ale liczbę rekordów liczysz ze wszystkich rekordów. No nie widzisz tu bezsensu? Skoro masz operować na danej kategorii to i liczbę rekordów masz pobierać dla danej kategorii

Cytat
I teraz jak przerobić górny kod tzn. pierwszy że wszystkie te liczby bo takie pisanie jest nudne były w jednej zmiennej?
ten drugi przyjmuję getem id a 1 muszę wpisać bo to jest jak strona główna i ma wyświetlać najnowsze rekordy z wszystkich tych id_kategorii:)

Czy te wszystkie kategorie co tu wypisałeś to wszystkie jakie masz w bazie? Jeśli tak to po grzyba w ogóle robisz z tego warunek? Po prostu nie umieszczaj tego w warunku i po sprawie
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: 7.10.2025 - 21:05