首页 > 学习园地 > 网络工程 >
  • 咨询13623339719方便接听。
  • 最新开课:10月29日,需提前报名排座!
  • 学校注重软件与实践结合学习,非单纯软件学习!
  • 咨询电话:0315-2841743 13623339719

唐山编程培训之zend studio-debug

2012-08-01 17:36:03 唐山恒升电脑学校煤医校区 电话0315-2841743 QQ:123190168 点击:
分享到:
更多

<FONT color=red>page.inc.php--分页类</FONT> &nbsp;[code=xml]&lt;?php

/**
* 一个用于Mysql数据库的分页类
*
* 使用实例:
* $p = new show_page;                //建立新对像
* $p-&gt;file="ttt.php";                //设置文件名,默认为当前页
* $p-&gt;pvar="pagecount";        //设置页面传递的参数,默认为p
* $p-&gt;setvar(array("a" =&gt; '1', "b" =&gt; '2'));        //设置要传递的参数,要注意的是此函数必须要在 set 前使用,否则变量传不过去
* $p-&gt;set(20,2000,1);                //设置相关参数,共三个,分别为'页面大小'、'总记录数'、'当前页(如果为空则自动读取GET变量)'
* $p-&gt;output(0);                        //输出,为0时直接输出,否则返回一个字符串
* echo $p-&gt;limit();                //输出Limit子句。在sql语句中用法为 "SELECT * FROM TABLE LIMIT {$p-&gt;limit()}";
*
*/

class show_page {

        /**
         * 页面输出结果
         *
         * @var string
         */
        var $output;

        /**
         * 使用该类的文件,默认为 PHP_SELF
         *
         * @var string
         */
        var $file;

        /**
         * 页数传递变量,默认为 'p'
         *
         * @var string
         */
        var $pvar = "p";

        /**
         * 页面大小
         *
         * @var integer
         */
        var $psize;

        /**
         * 当前页面
         *
         * @var ingeger
         */
        var $curr;

        /**
         * 要传递的变量数组
         *
         * @var array
         */
        var $varstr;

        /**
         * 总页数
         *
         * @var integer
         */
        var $tpage;

        /**
         * 分页设置
         *
         * @access public
         * @param int $pagesize 页面大小
         * @param int $total    总记录数
         * @param int $current  当前页数,默认会自动读取
         * @return void
         */
        function set($pagesize = 20, $total, $current = false) {

                global $HTTP_SERVER_VARS, $HTTP_GET_VARS;

                $URL = $_SERVER["REQUEST_URI"];//取得当前页面的url eg: http://test.com/a.php?a=1&amp;b=2  返回/a.php?a=1&amp;b=2
                $HTTP_SERVER_VARS = parse_url($URL);//返回数组  Array ( [path] =&gt; //a.php [query] =&gt; a=1&amp;b=2 )
                $HTTP_SERVER_VARS = $HTTP_SERVER_VARS["path"];
                $HTTP_GET_VARS = $_GET;//返回数组  Array ( [a] =&gt; 1 =&gt; 2 )

                $this-&gt;tpage = ceil($total / $pagesize);
                if(sizeof($HTTP_GET_VARS)==0)
                {
                        $current=1;
                }
                else
                {
                if (!$current) {
                        $current = $HTTP_GET_VARS[$this-&gt;pvar];
                }
                }


                if ($current &gt; $this-&gt;tpage) {
                        $current = $this-&gt;tpage;
                }
                if ($current &lt; 1) {
                        $current = 1;
                }

                $this-&gt;curr = $current;
                $this-&gt;psize = $pagesize;

                if (!$this-&gt;file) {
                        $this-&gt;file = $HTTP_SERVER_VARS;
                }

                if ($this-&gt;tpage &gt; 1) {

                        if ($current &gt; 10) {
                                $this-&gt;output .= '&lt;a href=' . $this-&gt;file . '?' . $this-&gt;pvar . '=' . ($current -10) . ($this-&gt;varstr) . ' title="前十页"&gt;&lt;&lt;&lt;&lt;/a&gt;&amp;nbsp;';
                        }
                        if ($current &gt; 1) {
                                $this-&gt;output .= '&lt;a href=' . $this-&gt;file . '?' . $this-&gt;pvar . '=' . ($current -1) . ($this-&gt;varstr) . ' title="前一页"&gt;&lt;&lt;&lt;/a&gt;&amp;nbsp;';
                        }

                        $start = floor($current / 10) * 10;
                        $end = $start +9;

                        if ($start &lt; 1) {
                                $start = 1;
                        }
                        if ($end &gt; $this-&gt;tpage) {
                                $end = $this-&gt;tpage;
                        }

                        for ($i = $start; $i &lt;= $end; $i++) {
                                if ($current == $i) {
                                        $this-&gt;output .= '&lt;font color="red"&gt;' . $i . '&lt;/font&gt;&amp;nbsp;'; //输出当前页数
                                } else {
                                        $this-&gt;output .= '&lt;a href="' . $this-&gt;file . '?' . $this-&gt;pvar . '=' . $i . $this-&gt;varstr . '"&gt;[' . $i . ']&lt;/a&gt;&amp;nbsp;'; //输出页数
                                }
                        }

                        if ($current &lt; $this-&gt;tpage) {
                                $this-&gt;output .= '&lt;a href=' . $this-&gt;file . '?' . $this-&gt;pvar . '=' . ($current +1) . ($this-&gt;varstr) . ' title="下一页"&gt;&gt;&gt;&lt;/a&gt;&amp;nbsp;';
                        }
                        if ($this-&gt;tpage &gt; 10 &amp;&amp; ($this-&gt;tpage - $current) &gt;= 10) {
                                $this-&gt;output .= '&lt;a href=' . $this-&gt;file . '?' . $this-&gt;pvar . '=' . ($current +10) . ($this-&gt;varstr) . ' title="下十页"&gt;&gt;&gt;&gt;&lt;/a&gt;';
                        }
                }
        }

        /**
         * 要传递的变量设置
         *
         * @access public
         * @param array $data   要传递的变量,用数组来表示,参见上面的例子
         * @return void
         */
        function setvar($data) {
                foreach ($data as $k =&gt; $v) {
                        $this-&gt;varstr .= '&amp;amp;' . $k . '=' . urlencode($v);
                }
        }

        /**
         * 分页结果输出
         *
         * @access public
         * @param bool $return 为真时返回一个字符串,否则直接输出,默认直接输出
         * @return string
         */
        function output($return = false) {
                if ($return) {
                        return $this-&gt;output;
                } else {
                        echo $this-&gt;output;
                }
        }

        /**
         * 生成Limit语句
         *
         * @access public
         * @return string
         */
        function limit() {
                return (($this-&gt;curr - 1) * $this-&gt;psize) . ',' . $this-&gt;psize;
        }

} //End Class
?&gt;[/code]&nbsp; &nbsp; <FONT color=red></FONT>&nbsp; &nbsp;

&nbsp;

<FONT color=red>index.php--测试页面</FONT>[code=xml]&lt;?php

require_once ("page.inc.php");
require_once ("conn.php");

//取得记录总数
$sql = "SELECT count(*) FROM T_Users";
$count = mysql_query($sql);
$count = mysql_fetch_row($count);
$count = $count[0];

//设置pagesize
$pagesize=3;

 

$p = new show_page; //建立新对像
//$p-&gt;file = "index.php"; //设置文件名,默认为当前页
//$p-&gt;pvar = "p"; //设置页面传递的参数,默认为p.
$p-&gt;setvar(array (
        "a" =&gt; '1',
        "b" =&gt; '3'
));
//设置要传递的参数,要注意的是此函数必须要在 set 前使用,否则变量传不过去

$p-&gt;set($pagesize, $count); //设置相关参数,共三个,分别为'页面大小'、'总记录数'、'当前页(如果为空则自动读取GET变量)'  eg:$p-&gt;set(3, $count,1);
$p-&gt;output(0); //输出,为0时直接输出,否则返回一个字符串


$sql = "SELECT * FROM T_USERS LIMIT {$p-&gt;limit()}";//$p-&gt;limit()返回LIMIT子句
$result = mysql_query($sql);

?&gt;

&lt;?php

echo "&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;" . "下面是返回的结果" . "&lt;BR&gt;";

while ($row = mysql_fetch_array($result)) {

        echo "&lt;br&gt;id:" . $row["id"] . "   " . "username:" . $row["username"];
}
?&gt;[/code]&nbsp; <FONT color=red></FONT>&nbsp; &nbsp; &nbsp;

&nbsp;

<FONT color=red>conn.php--连接数据库</FONT>[code=xml]<?php

$conn = @ mysql_connect("localhost", "root", "root") or die("数据库链接错误");
mysql_select_db("db_users", $conn);
mysql_query("set names 'GBK'"); //使用GBK中文编码;

function htmtocode($content) {
        $content = str_replace("\n", "
", str_replace(" ", " ", $content));
        return $content;
}

//$content=str_replace("'","‘",$content);
//htmlspecialchars();

分享到:
更多

上一篇:唐山网络工程培训之Database .net   下一篇:唐山编程培训之C#链接数据库教程

相关阅读
我要报名
  • 姓    名:    拟报课程:
  • 住址摘要:
  • QQ  号码:    电话号码:
  • 电话咨询
  • 0315-2841743 [8:00 - 20:00]
  • 短信咨询
  • 13623339719 [8:00 - 20:00]
学校地址:河北唐山市建设路82号(建设路与煤医道交叉口西南角临街) 乘车路线:市内乘7、61、114、35、26、36、16、77、41、28、27等煤医道口下车 自驾有停车场
招生热线:0315-2841743(8:00-20:00)13373059616(休息时间) 邮箱:123190168@qq.com 咨询QQ:123190168(报名咨询QQ) 99558356(装饰工程QQ)
版权所有:唐山电脑培训学校(恒升煤医校区)
声明:未经书面许可,擅自复制、转载、刊登者追究其法律责任!(律师海国志) 支持:济南网络建设