Home  >  Article  >  Backend Development  >  PHP+smarty paging principle and paging code sharing

PHP+smarty paging principle and paging code sharing

WBOY
WBOYOriginal
2016-07-25 08:52:41958browse
$ this->config_dir="smarty/smarty/config_file.class.php";
$this->caching=false;
$this->template_dir = "smarty/templates/";
    $this->cache_dir = "smarty/smarty_cache/";
  1. $this->left_delimiter = "{";
  2. $this->right_delimiter = "}";
  3. }
  4. }
  5. ?>

  6. Copy Code
  7. 2, adodb, connect database class:
  8. class conndb
{
var $dbtype;var $host;var $user;
var $pwd;

var $dbname;

var $debug;//false does not display debugging information, otherwise , display
var $conn;
function __construct($dbtype,$host,$user,$pwd,$dbname,$debug=false)
    {
  1. $this->dbtype = $dbtype;
  2. $this-> host = $host;
  3. $this->user = $user;
  4. $this->pwd = $pwd;
  5. $this->dbname = $dbname;
  6. $this->debug = $debug;
  7. }
  8. //Implement the database connection and return the connection object (personal understanding can be said to return the adodb object)
  9. function getconnid()
  10. {
  11. include_once('adodb5/adodb.inc.php');
  12. if($this-> dbtype == "mysql" || $this->dbtype == "mssql")
  13. {
  14. if($this->dbtype == "mysql")
  15. {
  16. $this->conn = newadoconnection(" mysql");//Create adodb object and declare the database type as mysql
  17. }
  18. else
  19. {
  20. $this->conn = newadoconnection("mssql");
  21. }
  22. $this->conn->connect( $this->host,$this->user,$this->pwd,$this->dbname);
  23. }
  24. else if($this->dbtype == "access")
  25. {
  26. $this->conn = newadoconnection("access");
  27. $this->conn->connect("driver={microsoft access driver (*.mdb)};dbq=".$this-> dbname.";uid=".$this->user.";pwd=".$this->pwd.";");
  28. }
  29. $this->conn->execute("set names utf-8");
  30. if($this->dbtype == "mysql")
  31. {
  32. $this->conn->debug = $this->debug;
  33. }
  34. return $this ->conn;
  35. }
  36. function closeconnid()//Close the connection to the database
  37. {
  38. $this->conn->disconnection();
  39. }
  40. }
  41. Copy code
  42. 3, Database operation class:
  43. class admindb
{
var $sqlstr; var $conn; var $sqltype;
var $rs;

var $array;

function execsql($sqlstr,$conn)
{
$rs = $conn->execute($sqlstr);
    $sqltype = strtolower(substr(trim($sqlstr),0,6)); //strtolower() function converts the string to lowercase.
  1. if($sqltype = "select")
  2. {
  3. $array = $rs->getrows(); // Similar to the array returned by the mysql_fetch_array function
  4. if(count($array) == 0 || $rs == false)
  5. {
  6. return false;
  7. }
  8. else
  9. {
  10. return $array;
  11. }
  12. }
  13. else if($sqltype = "update"||$sqltype = "insert"||$sqltype = "delete")
  14. {
  15. if($rs)
  16. {
  17. return true;
  18. }
  19. else
  20. {
  21. return false;
  22. }
  23. }
  24. }
  25. }
  26. Copy code
  27. 4,分页类:

    1. class seppage

    2. {
    3. var $rs;
    4. var $pagesize;
    5. var $nowpage;
    6. var $array;
    7. var $conn;
    8. var $sqlstr;
    9. function showdate($sqlstr,$conn,$pagesize,$nowpage)
    10. {
    11. if(!isset($nowpage)||$nowpage=="")
    12. {
    13. $nowpage = 1 ;
    14. }
    15. else
    16. {
    17. $this->nowpage = $nowpage;
    18. }
    19. $this->pagesize = $pagesize;
    20. $this->conn = $conn;
    21. $this->sqlstr = $sqlstr;
    22. $this->rs = $this->conn->pageexecute($this->sqlstr,$this->pagesize,$this->nowpage);
    23. //pageexecute($sql, $nrows, $page, $inputarr=false) 使用资料集的页码功能,叁数 $page 是以 1 为启使值
    24. $this->array = $this->rs->getrows();
    25. if(count($this->array) == 0 || $this->rs == false)
    26. {
    27. return false;
    28. }
    29. else
    30. {
    31. return $this->array;
    32. }
    33. }

    34. function showpage($contentname,$utits,$anothersearchstr,$class)

    35. {

    36. $allrs=$this->conn->execute($this->sqlstr);

    37. $record=count($allrs->getrows());
    38. $pagecount=ceil($record/$this->pagesize);

    39. $str.="共有".$contentname." ".$record." ".$utits." 每页显示 ".$this->pagesize." ".$utits." 第 ".$this->rs->absolutepage()." 页/共 ".$pagecount." 页";

    40. $str.="    ";

    41. if(!$this->rs->atfirstpage())

    42. {
    43. $str.="首页";
    44. }
    45. else
    46. {
    47. $str.="首页";
    48. }
    49. $str.=" ";

    50. if(!$this->rs->atfirstpage())

    51. {
    52. $str.="上一页";
    53. }
    54. else
    55. {
    56. $str.="上一页";
    57. }
    58. $str.=" ";

    59. if(!$this->rs->atlastpage())

    60. {
    61. $str.="下一页";
    62. }
    63. else
    64. {
    65. $str.="下一页";
    66. }
    67. $str.=" ";
    68. if(!$this->rs->atlastpage())

    69. {
    70. $str.="尾页";
    71. }
    72. else
    73. {
    74. $str.="尾页";
    75. }
    76. if(count($this->array)==0 || $this->rs==false)
    77. {
    78. return "";
    79. }
    80. else
    81. {
    82. return $str;
    83. }
    84. }
    85. }

    复制代码

    5. Classes for article character conversion processing:

    1. class usefun

    2. {
    3. function unhtml($text)
    4. {
    5. $content=(nl2br(htmlspecialchars($text))));//htmlspecialchars() function combines some predefined The characters are converted to HTML entities, and the nl2br() function inserts an HTML newline character (
      ) before each new line (/n) in the string.

    6. $content=str_replace("[strong]","",$content);

    7. $content=str_replace("[/strong]","$content=str_replace("[em]","",$content);
    8. $content=str_replace("[/em]","" ,$content);
    9. $content=str_replace("[u]","",$content);
    10. $content=str_replace("[/u]","",$ content);
    11. $content=str_replace("[font color=#ff0000]","",$content);
    12. $content=str_replace("[font color=#00ff00] ","",$content);
    13. $content=str_replace("[font color=#0000ff]","",$content);
    14. $content=str_replace("[font face=混体_gb2312]","",$content);
    15. $content=str_replace("[font face=宋体]","< font face=新宋体>",$content);
    16. $content=str_replace("[font face=official script]","",$content);
    17. $content=str_replace(" [/font]","",$content);
    18. //$content=str_replace(chr(32)," ",$content);
    19. $content=str_replace("[font size=1 ]","",$content);
    20. $content=str_replace("[font size=2]","",$content);
    21. $content= str_replace("[font size=3]","",$content);
    22. $content=str_replace("[font size=4]","", $content);
    23. $content=str_replace("[font size=5]","",$content);
    24. $content=str_replace("[font size=6]","< ;font size=6>",$content);

    25. $content=str_replace("[fieldset][legend]","

      ",$content) ;
    26. $content=str_replace("[/legend]","",$content);
    27. $content=str_replace("[/fieldset]","",$content) ;
    28. return $content;
    29. }
    30. }

    Copy the code

    Put all the above four classes into one class file system.class.inc.php.

    A few more files: 1. system.inc.php:

    1. session_start();

    2. include_once("smarty_inc.php");
    3. include_once("system.class.inc.php");
    4. //Database connection class Instantiation
    5. $connobj = new conndb("mysql","localhost","root","vertrigo","db_fenye",false);
    6. $conn = $connobj->getconnid();
    7. //Database operation Class instantiation
    8. $admindb = new admindb();
    9. //Paging class instantiation
    10. $seppage=new seppage();
    11. //Use common function class instantiation
    12. $usefun=new usefun();
    13. //Call smarty template
    14. $smarty=new smartyproject();
    15. function unhtml($params)
    16. {
    17. extract($params);
    18. $text=$content;
    19. global $usefun;
    20. return $usefun->unhtml($text );
    21. }

    22. $smarty->register_function("unhtml","unhtml");

    23. ?>

    Copy code

    2、执行文件,index.php:

    1. include_once("system.inc.php");
    2. $arraybbstell = $admindb->execsql("select * from tb_bookinfo",$conn);
    3. if(!$arraybbstell)
    4. {
    5. $smarty->assign("isbbstell","t");
    6. }
    7. else
    8. {
    9. $smarty->assign("isbbstell",t);
    10. $smarty->assign("arraybbstell",$arraybbstell);
    11. }
    12. $arraybbs = $seppage->showdate("select * from tb_bookinfo",$conn,1,$_get["page"]);
    13. if(!$arraybbs)
    14. {
    15. $smarty->assign("isbbs",f);
    16. }
    17. else
    18. {
    19. $smarty->assign("isbbs",t);
    20. $smarty->assign("showpage",$seppage->showpage("帖子","条","","a1"));
    21. $smarty->assign("arraybbs",$arraybbs);
    22. }
    23. $smarty->display("index.html");
    24. ?>
    复制代码

    3、解析文件,index.html:

    1. 页模
    2. {if $isbbs=="t"}
    3. {php}
    4. $i=1;
    5. {/php}
    6. {section name=bbsid loop=$arraybbs}
    7. {php}
    8. $i++;
    9. {/php}
    10. {/section}
    11. 图书名称
      图书内容
      出版日期
      图书作者
      {unhtml content=$arraybbs[bbsid].bookname}
      {$arraybbs[bbsid].bookintro}
      {$arraybbs[bbsid].booktime}
      {$arraybbs[bbsid].bookauthor}
    12.  {$showpage}
    13. {/if}
    14. {if $isbbstell=="f" && $isbbs=="f"}
    15. {ldelim}暂时没有内容{rdelim}
    16. {/if}
    17.  
复制代码

总结: 需切记smarty,adodb文件引入的相关一些路径问题。 在执行文件index.html中的css路径,图片背景路径都是相对于index.php这个执行文件的(如css/css.cs和index.php在同一级),引入方法是:

adodb的分页函数:pageexecute,absolutepage()当前页码,atfirstpage()首页页码,atlastpage()尾页页码。(个人理解) $_server['php_self']:当前执行的文件。 smarty的register_function()参考另文。



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