Home  >  Article  >  Backend Development  >  Smarty paging example

Smarty paging example

WBOY
WBOYOriginal
2016-07-25 09:10:301341browse
  1. @session_start();

  2. require_once("smarty.php");//Load smarty template class
  3. require_once("adodb/adodb.inc.php");/ /Load adodb database

  4. //Connect to database

  5. $dbhost = 'localhost'; // Database server
  6. $dbuser = 'root'; // Database user name
  7. $dbpwd= 'root' ; // Database password
  8. $dbname='hejia'; //Database name

  9. $conn = NewAdoConnection('mysql'); // Create connection object

  10. $conn->Connect( $dbhost, $dbuser, $dbpwd, $dbname); //Connect to the database
  11. $conn->Query("Set Names 'gb2312'"); //Sourced from mysql_query("SET NAMES GBK");
  12. date_default_timezone_set( PRC); //The solution for PHP to obtain the time difference of 8 hours, you can also modify the date.timezone in php.ini to PRC
  13. ?>

Copy the code

Homepage index.php:

  1. require_once("const.php");

  2. $sql1="select id,hits,title,add_date from oa_art order by id desc"; //SQL statement
  3. $pageSize=4; //Set the number of records per page
  4. $sql=$sql1." limit ".($pageSize * ((empty($_REQUEST['page']) ? 1 : $_REQUEST['page']) -1)).", ".$pageSize;
  5. $news_array=$conn->getall($sql);
  6. $news_array1=$conn->getall($sql1);
  7. $page_url="index.php "; //Page url address
  8. $totalnumber=count($news_array1); //Get the total number of records
  9. $midPage=5; //Number of digital navigation links
  10. page();// Call the paging function

  11. for ($i = 0; $i <=ceil($totalnumber/$pageSize); $i++) $page_option[] = $i;//Generate a paginated drop-down list array

  12. $smarty-> assign("page_option",$page_option);

  13. $smarty->assign("news_data",$news_array);

  14. $smarty->assign("mytitle","Corporate website Home page");
  15. $smarty->display("tpl.htm",$page);
  16. ?>

Copy code

Paging function:

  1. function page()

  2. {
  3. global $smarty,$start,$page_url,$pageSize,$midPage,$totalnumber;
  4. $total = $totalnumber ; / /Get the total number of records
  5. $totalPage = ceil($total/$pageSize); //Get the total number of pages
  6. $currentPage=@$_REQUEST['page']+0; //Current page
  7. if(!is_numeric($ currentPage) || $currentPage < 1 || empty($currentPage) || $currentPage > $totalPage)
  8. $currentPage=1; //Initialize the current page
  9. $url = preg_replace(array("!(([& ]|^)(page)[=]?([^&]+)?)|((([&]){2,})|(^[&])|([&]$))!" ,),array(""),$_SERVER["QUERY_STRING"]); // Set the address and replace it with regular
  10. $url.=($url?"&":"").'page'; // Append
  11. $start = ($currentPage-1)*$pageSize;
  12. $back = $currentPage > 1?"<<n":"";
  13. $next = $currentPage < $totalPage ?">>n":"";
  14. $first = $ currentPage > 1?"Homepagen":"";
  15. $last = $currentPage < $ totalPage?"Last pagen":"";

  16. // Navigation link

  17. $midPages = '';
  18. $num = $currentPage-floor($midPage/2);
  19. if($num > 0)
  20. {
  21. if(($totalPage-$num) < $ midPage)
  22. {
  23. $tmp = $totalPage - $midPage;
  24. $num = $tmp< 0 ? 1 : ++$tmp;
  25. }
  26. }else $num = 1;
  27. for($i=1; $i< ;=$midPage;$i++,$num++)
  28. {
  29. if($num > $totalPage) break;
  30. $midPages .= ($num == $currentPage) ? '['.$num.'] ' : "".$num." ";
  31. }
  32. $ smarty->assign("page_total",$total); // Total
  33. $smarty->assign("page_currentPage",$currentPage); // Current page number
  34. $smarty->assign("page_totalPage",$ totalPage); // Total number of pages
  35. $smarty->assign("page_back",$back); // Previous page
  36. $smarty->assign("page_next",$next); // Next page
  37. $smarty->assign("page_first",$first); // Homepage
  38. $smarty->assign("page_last",$last); // Last page
  39. $smarty->assign("page_midPages" ,$midPages); // Middle page
  40. $smarty->assign("page_url",$page_url); // Current page address
  41. }
  42. ?>

Copy code

模板页 tpl.htm:

  1. <{$mytitle}>
  2. <{section name=nloop loop=$news_data}>
  3. ">
  4. <{sectionelse}>
  5. <{/section}>
  6. 标题 发布日期 点击次数
    <{$news_data[nloop].title}> <{$news_data[nloop].add_date|date_format:"%Y-%m-%d"}> <{$news_data[nloop].hits}>
    对不起,没有任何新闻输入!
  7. 共<{$page_total}>条 
  8. 第<{$page_currentPage}>/<{$page_totalPage}>页 
  9. <{$page_first}>
  10. <{$page_back}>
  11. <{$page_midPages}>
  12. <{$page_next}>
  13. <{$page_last}>
  14. 转到
  15. <{include file="bottom.htm"}>
复制代码


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn