Senin, 23 Januari 2012

Teknik Paging di PHP (Previous n Next)

Paging atau yang biasa dikenal dengan pagination adalah sebuah teknik untuk memecah tampilan per halaman yang akan ditampilkan.


Untuk Database'a....
  1. $server = "localhost";
  2. $user = "username";
  3. $pass = "";
  4. $databasename = "namaDatabase";
Source Code ....
  1. $db = mysql_connect($server, $user);
  2. mysql_select_db($databasename,$db);
  3. $sql = "SELECT * FROM yourtable WHERE yourconditions ORDER BY your_order ";
  4. $query = mysql_query($sql,$db);
  5. $total_results = mysql_num_rows($query);
  6. $limit = "15"; //limit of archived results per page.
  7. $total_pages = ceil($total_results / $limit); //total number of pages
  8. if (empty($page))
  9. {
  10. $page = "1"; //default page if none is selected
  11. }
  12. $offset = ($page - 1) * $limit; //starting number for displaying results out of DB
  13. $query = "SELECT * FROM yourtable WHERE yourconditions ORDER BY your_order LIMIT $offset, $limit";
  14. $result = mysql_query($query);
  15. //This is the start of the normal results...
  16. while ($row = mysql_fetch_array($result))
  17. {
  18. // display your results as you see fit here.
  19. }
  20. mysql_close();
  21. // This is the Previous/Next Navigation
  22. echo "";
  23. echo "Pages:($total_pages)  "; // total pages
  24. if ($page != 1)
  25. {
  26. echo "<< First   "; // First Page Link
  27. $prevpage = $page - 1;
  28. echo << "; // Previous Page Link
  29. }
  30. if ($page == $total_pages)
  31. {
  32. $to = $total_pages;
  33. }
  34. elseif ($page == $total_pages-1)
  35. {
  36. $to = $page+1;
  37. }
  38. elseif ($page == $total_pages-2)
  39. {
  40. $to = $page+2;
  41. }
  42. else
  43. {
  44. $to = $page+3;
  45. }
  46. if ($page == 1 || $page == 2 || $page == 3)
  47. {
  48. $from = 1;
  49. }
  50. else
  51. {
  52. $from = $page-3;
  53. }
  54. for ($i = $from; $i <= $to; $i++)
  55. {
  56. if ($i == $total_results) $to=$total_results;
  57. if ($i != $page)
  58. {
  59. echo "$i";
  60. }
  61. else
  62. {
  63. echo "[$i]";
  64. }
  65. if ($i != $total_pages)
  66. echo " ";
  67. }
  68. if ($page != $total_pages)
  69. {
  70. $nextpage = $page + 1;
  71. echo >> "; // Next Page Link
  72. echo "   Last >>"; // Last Page Link
  73. }
  74. echo "";
  75. // This is the end of the Previous/Next Navigation
 

1 komentar: