Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyświetlanie ostatniej strony przy paginacji
Forum PHP.pl > Forum > Przedszkole
eurosoft
Witam Wszytskich!
Mam w serwisie zastosowana paginację na stronie, czy istnieje mozliwość aby podczas otwierania strony została automatycznie załadowana ostatnia strona?
Temat dla mniejest nie do przejścia, a już goooooglowałem i szukałem wszędzie.

dziękuję za wszelkie podpowiedzi.

P.s. Wszytskiego dobrego w Nowym Roku!
lord2105
pokaz dotychczasowy kod paginacji
eurosoft
  1. $ileNaStronie=27;
  2. $tabela = 'book';
  3. $tabela1 = 'shot';
  4.  
  5.  
  6. if(!isset($_GET[page]))
  7. {
  8. $strona=1;
  9. }
  10. else
  11. $strona=$_GET[page];
  12. $from=($strona-1)*$ileNaStronie;
  13.  
  14. $sql = "SELECT COUNT(*) FROM $tabela WHERE nr_obw='{$_SESSION['nr_obw']}'";
  15. $result = mysql_query($sql) or die('Queryproblem: ' . mysql_error());
  16. $ilePozycji = mysql_result($result, 0);
  17.  
  18. $sql = "SELECT * FROM $tabela WHERE nr_obw='{$_SESSION['nr_obw']}' LIMIT $from, $ileNaStronie";
  19. $result = mysql_query($sql) or die('Queryproblem: '.mysql_error());
  20. $zlicz = mysql_num_rows($result);
  21.  
  22. $sql1 = "SELECT
  23. book.id_book,
  24. book.imie_nazwisko,
  25. book.start_pol,
  26. shot.animals,
  27. shot.animals1,
  28. shot.animals2,
  29. shot.ilosc,
  30. shot.ilosc1,
  31. shot.ilosc2,
  32. shot.ilosc_shot,
  33. shot.login
  34. FROM book LEFT JOIN shot ON book.id_book=shot.id_book where book.nr_obw='{$_SESSION['nr_obw']}' LIMIT $from, $ileNaStronie";
  35. $result1 = mysql_query($sql1) or die('Queryproblem: '.mysql_error());
  36. if($zlicz)
  37. {
  38.  
  39. if($ilePozycji>$ileNaStronie)
  40. {
  41. $ileStron=ceil($ilePozycji/$ileNaStronie);
  42.  
  43. if($strona>1) //poprzednia strona
  44. {
  45. echo"<a href=\"?=&page=";
  46. echo $strona-1;
  47. echo "&$order\">Poprzednia</a>";
  48. echo "&nbsp;&nbsp;";
  49.  
  50. echo"<a href=\"?=&page=";
  51. echo 1;
  52. echo "&$order\">1</a>";
  53. echo "&nbsp;&nbsp;";
  54. }
  55. //////////////////////////////////////////////
  56. function odnosnik($page, $ofs)
  57. {
  58. global $order;
  59. if($page-$ofs > 1)
  60. {
  61. echo"<a href=\"?=&page=";
  62. echo $page-$ofs;
  63. echo "&$order\">";
  64. echo $page-$ofs;
  65. echo "</a>";
  66. echo "&nbsp;&nbsp;";
  67. }
  68. }
  69. function odnosnikr($page, $ofs, $pagenum)
  70. {
  71. global $order;
  72. if($page+$ofs < $pagenum)
  73. {
  74. echo"<a href=\"?=&page=";
  75. echo $page+$ofs;
  76. echo "&$order\">";
  77. echo $page+$ofs;
  78. echo "</a>";
  79. echo "&nbsp;&nbsp;";
  80. }
  81. }
  82.  
  83. odnosnik($strona,20);
  84. odnosnik($strona,10);
  85. odnosnik($strona,2);
  86. odnosnik($strona,1);
  87. echo $strona;
  88. echo "&nbsp;&nbsp;";
  89. odnosnikr($strona,1,$ileStron);
  90. odnosnikr($strona,2,$ileStron);
  91. odnosnikr($strona,10,$ileStron);
  92. odnosnikr($strona,20,$ileStron);
  93.  
  94. if($strona<$ileStron)
  95. {
  96. echo"<a href=\"?=&page=";
  97. echo $ileStron;
  98. echo "&$order\">$ileStron</a>";
  99.  
  100. echo "&nbsp;&nbsp;";
  101.  
  102. echo"<a href=\"?=&page=";
  103. echo $strona+1;
  104. echo "&$order\">Następna</a>";
  105.  
  106. }
  107. }
  108. }
thek
Rozwiązania są 2.
1) W zapytaniu zrobisz kolejność odwrotną
2) W przypadku gdy ktoś nie podał strony jawnie $_GET['page'] na starcie, jako wybraną ustaw tam nie 1 ale $ileStron smile.gif

Pierwsze jest proste do implementacji bo robisz tylko order dodatkowo. Jeśli nie możesz tego tak zrobić, to niestety czeka Cię kombinowanie z najpierw liczeniem ilości rekordów, by wiedzieć ile tych stron jest i dopiero potem SELECT robić. Czyli nie ominą Cię wtedy przeróbki ciut większe.
eurosoft
niestety, wyskakuje poniższy komunikat:
Queryproblem: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-27, 27' at line 1


A tak dla pewności...... miałem zmienić linijkę
{
$strona=1;
}

na
{
$strona=$ileStron;
}

questionmark.gif

OK, pomogło, faktycznie jeszcze potrzebna była mała kosmetyka i zadziałało
Dzięki wielkie, temat do zamknięcia

p.s.
Dla tych co będą mieli podobny kłopot:
  1. $sql = "SELECT COUNT(*) FROM $tabela WHERE nr_obw='{$_SESSION['nr_obw']}'";
  2. $result = mysql_query($sql) or die('Queryproblem: ' . mysql_error());
  3. $ilePozycji = mysql_result($result, 0);
  4.  
  5.  
  6.  
  7. $ileStron=ceil($ilePozycji/$ileNaStronie);
  8.  
  9.  
  10. if(!isset($_GET[page]))
  11. {
  12. $strona=$ileStron;
  13. }
  14. else
  15. $strona=$_GET[page];
  16. $from=($strona-1)*$ileNaStronie;
  17.  
  18.  
  19. $sql = "SELECT * FROM $tabela WHERE nr_obw='{$_SESSION['nr_obw']}' LIMIT $from, $ileNaStronie";
  20. $result = mysql_query($sql) or die('Queryproblem: '.mysql_error());
  21. $zlicz = mysql_num_rows($result);
  22.  
  23. $sql1 = "SELECT
  24. book.id_book,
  25. book.imie_nazwisko,
  26. book.start_pol,
  27. shot.animals,
  28. shot.animals1,
  29. shot.animals2,
  30. shot.ilosc,
  31. shot.ilosc1,
  32. shot.ilosc2,
  33. shot.ilosc_shot,
  34. shot.login
  35. FROM book LEFT JOIN shot ON book.id_book=shot.id_book where book.nr_obw='{$_SESSION['nr_obw']}' LIMIT $from, $ileNaStronie";
  36. $result1 = mysql_query($sql1) or die('Queryproblem: '.mysql_error());
  37.  
  38. if($zlicz)
  39. {
  40.  
  41. if($ilePozycji>$ileNaStronie)
  42. {
  43. $ileStron=ceil($ilePozycji/$ileNaStronie);
  44.  
  45. if($strona>1) //poprzednia strona
  46. {
  47. echo"<a href=\"?=&page=";
  48. echo $strona-1;
  49. echo "&$order\">Poprzednia</a>";
  50. echo "&nbsp;&nbsp;";
  51.  
  52. echo"<a href=\"?=&page=";
  53. echo 1;
  54. echo "&$order\">1</a>";
  55. echo "&nbsp;&nbsp;";
  56. }
  57.  
  58. function odnosnik($page, $ofs)
  59. {
  60. global $order;
  61. if($page-$ofs > 1)
  62. {
  63. echo"<a href=\"?=&page=";
  64. echo $page-$ofs;
  65. echo "&$order\">";
  66. echo $page-$ofs;
  67. echo "</a>";
  68. echo "&nbsp;&nbsp;";
  69. }
  70. }
  71. function odnosnikr($page, $ofs, $pagenum)
  72. {
  73. global $order;
  74. if($page+$ofs < $pagenum)
  75. {
  76. echo"<a href=\"?=&page=";
  77. echo $page+$ofs;
  78. echo "&$order\">";
  79. echo $page+$ofs;
  80. echo "</a>";
  81. echo "&nbsp;&nbsp;";
  82. }
  83. }
  84.  
  85. odnosnik($strona,20);
  86. odnosnik($strona,10);
  87. odnosnik($strona,2);
  88. odnosnik($strona,1);
  89. echo $strona;
  90. echo "&nbsp;&nbsp;";
  91. odnosnikr($strona,1,$ileStron);
  92. odnosnikr($strona,2,$ileStron);
  93. odnosnikr($strona,10,$ileStron);
  94. odnosnikr($strona,20,$ileStron);
  95.  
  96. if($strona<$ileStron)
  97. {
  98. echo"<a href=\"?=&page=";
  99. echo $ileStron;
  100. echo "&$order\">$ileStron</a>";
  101.  
  102. echo "&nbsp;&nbsp;";
  103.  
  104. echo"<a href=\"?=&page=";
  105. echo $strona+1;
  106. echo "&$order\">Następna</a>";
  107.  
  108. }
  109. }
  110. }
  111.  
  112.  
  113.  
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.