smarty分页的例子

WBOY
Freigeben: 2016-07-25 09:10:30
Original
1331 Leute haben es durchsucht
  1. @session_start();
  2. require_once("smarty.php");//加载smarty模板类
  3. require_once("adodb/adodb.inc.php");//加载adodb数据库
  4. //连接数据库

  5. $dbhost = 'localhost'; // 数据库服务器
  6. $dbuser = 'root'; // 数据库用户名
  7. $dbpwd= 'root'; // 数据库密码
  8. $dbname='hejia'; //数据库名称
  9. $conn = NewAdoConnection('mysql'); // 建立连接对象

  10. $conn->Connect($dbhost, $dbuser, $dbpwd, $dbname); //连接数据库
  11. $conn->Query("Set Names 'gb2312'");//来源于mysql_query("SET NAMES GBK");
  12. date_default_timezone_set(PRC); //PHP获取时间差8小时的解决办法,也可在php.ini里修改date.timezone为PRC
  13. ?>
复制代码

首页 index.php:

  1. require_once("const.php");
  2. $sql1="select id,hits,title,add_date from oa_art order by id desc"; //SQL语句
  3. $pageSize=4; //设置每页记录数
  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"; //页面url地址
  8. $totalnumber=count($news_array1); //获得总记录数
  9. $midPage=5; //数字导航链接数
  10. page();// 调用分页函数
  11. for ($i = 0; $i $smarty->assign("page_option",$page_option);

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

  13. $smarty->assign("mytitle","企业网站首页");
  14. $smarty->display("tpl.htm",$page);
  15. ?>
复制代码

分页函数:

  1. function page()

  2. {
  3. global $smarty,$start,$page_url,$pageSize,$midPage,$totalnumber;
  4. $total = $totalnumber ; //获得总记录数
  5. $totalPage = ceil($total/$pageSize); //获得总页数
  6. $currentPage=@$_REQUEST['page']+0; //当前页
  7. if(!is_numeric($currentPage) || $currentPage $totalPage)
  8. $currentPage=1; //初始化当前页
  9. $url = preg_replace(array("!(([&]|^)(page)[=]?([^&]+)?)|((([&]){2,})|(^[&])|([&]$))!",),array(""),$_SERVER["QUERY_STRING"]); // 设置地址,正则替换掉
  10. $url.=($url?"&":"").'page'; // 追加
  11. $start = ($currentPage-1)*$pageSize;
  12. $back = $currentPage > 1?"\n":"";
  13. $next = $currentPage >>\n":"";
  14. $first = $currentPage > 1?"首页\n":"";
  15. $last = $currentPage 尾页\n":"";
  16. // 导航链接

  17. $midPages = '';
  18. $num = $currentPage-floor($midPage/2);
  19. if($num > 0)
  20. {
  21. if(($totalPage-$num) {
  22. $tmp = $totalPage - $midPage;
  23. $num = $tmp }
  24. }else $num = 1;
  25. for($i=1; $i {
  26. if($num > $totalPage) break;
  27. $midPages .= ($num == $currentPage) ? '['.$num.'] ' : "".$num." ";
  28. }
  29. $smarty->assign("page_total",$total); // 总计
  30. $smarty->assign("page_currentPage",$currentPage); // 当前页码
  31. $smarty->assign("page_totalPage",$totalPage); // 总页数
  32. $smarty->assign("page_back",$back); // 上一页
  33. $smarty->assign("page_next",$next); // 下一页
  34. $smarty->assign("page_first",$first); // 首页
  35. $smarty->assign("page_last",$last); // 尾页
  36. $smarty->assign("page_midPages",$midPages); // 中间页
  37. $smarty->assign("page_url",$page_url); // 当前页地址
  38. }
  39. ?>
复制代码

模板页 tpl.htm:

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage