我是做asp的,在自学php
我使用的adodb链接的mysql数据库 但是不会分页,希望有会的高手帮忙指点下
我想用adodb读取数据 然后用table输出 分页显示
哪位高手能帮下忙
或者哪位高手有会使用php内置mysql链接函数写出来分页显示代码的帮忙指点一下
不胜感激!

解决方案 »

  1.   

    mysql的连接类里面没有分页的函数。ADODB这个是ASP常用的术语,但是在PHP中一般不会这么写。下载discuz的程序文件,打开里面的include/db_mysql.class.php,这个里面是链接库,
    很简单的使用方法。分页需要分页函数,uchome里面有一个分页函数在 source/function_common.php 里面,
    可以自己写一个分页函数。function fenye($fenyeurl,$page,$totalnum,$numperpage){
    //计算出分页的HTML代码
    $html = '';
    for(;;;){
    $html .= '';
    }
    return $html;
    }
      

  2.   

    <?php    function pageft($totle, $displaypg = 20, $url = '') {        global $page, $firstcount, $pagenav, $_SERVER;        $GLOBALS["displaypg"] = $displaypg;        if (!$page)
                $page = 1;
            if (!$url) {
                $url = $_SERVER["REQUEST_URI"];
            }        //URL分析:
            $parse_url = @parse_url($url);
            $url_query = $parse_url["query"]; //单独取出URL的查询字串
            if ($url_query) {
                $url_query = ereg_replace("(^|&)page=$page", "", $url_query);
                $url = str_replace($parse_url["query"], $url_query, $url);
                if ($url_query)
                    $url .= "&page";
                else
                    $url .= "page";
            } else {
                 $url=$_SERVER['PHP_SELF']; 
                 $url .= "?page";
            }
            $lastpg = ceil($totle / $displaypg); //最后页,也是总页数
            if($_GET[page]){
            $page=$_GET[page];
            }
            $page = min($lastpg, $page);
            $prepg = $page -1; //上一页
            $nextpg = ($page == $lastpg ? 0 : $page +1); //下一页
            $firstcount = ($page -1) * $displaypg;        //开始分页导航条代码:
            $pagenav = "显示第 <B>" . ($totle ? ($firstcount +1) : 0) . "</B>-<B>" . min($firstcount + $displaypg, $totle) . "</B> 条记录,共 $totle 条记录";        //如果只有一页则跳出函数:
            if ($lastpg <= 1)
                return false;        $pagenav .= " <a href='$url=1'>首页</a> ";
            if ($prepg)
                $pagenav .= " <a href='$url=$prepg'>前页</a> ";
            else
                $pagenav .= " 前页 ";
            if ($nextpg)
                $pagenav .= " <a href='$url=$nextpg'>后页</a> ";
            else
                $pagenav .= " 后页 ";
            $pagenav .= " <a href='$url=$lastpg'>尾页</a> ";        //下拉跳转列表,循环列出所有页码:
            $pagenav .= " 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";
            for ($i = 1; $i <= $lastpg; $i++) {
                if ($i == $page)
                    $pagenav .= "<option value='".$i."' selected>".$i."</option>\n";
                else
                    $pagenav .= "<option value='".$i."'>".$i."</option>\n";
            }
            $pagenav .= "</select> 页,共 $lastpg 页";
        }?>
    自己去看看吧!  也不知是不是你需要的。。
      

  3.   

    谢谢 谢谢楼上诸位
    php有一个adodb函数库的 不过要自己下载 其中的一些方法跟asp的adodb是不一样的
    到现在也没有解决adodb的分页问题
    所以我自己用php内置的mysql链接函数写了一段分页代码 代码如下 希望能对跟我一样的php新手有所帮助
    <?php 
    session_start();
    //mysql数据库链接
    //设置连接字符串
    $db = array(
    "host"=>"127.0.0.1:3306",
    "name"=>"root",
    "pwd"=>"",
    "db"=>"test"
    );
    //创建数据库链接对象
    $conn = mysql_connect($db["host"],$db["name"],$db["pwd"]) or die("链接数据库失败!");
    //选择数据库
    mysql_select_db($db["db"],$conn) or die("选择数据库时出错!");
    //设置字符集
    mysql_query("SET NAMES UTF8") or die("设置字符集时出错");
    //分页代码开始{
    $sql = "select count(*) from Andy";
    $result = mysql_query($sql);
    $count = mysql_fetch_array($result);
    $pagesize = 3;
    $maxpage = intval($count[0]/$pagesize);
    if ($count[0]%$pagesize != 0) {
    $maxpage = $maxpage + 1;
    }
    //echo "$maxpage<br />";
    $cur_page = 1;
    if (isset($_GET["cur_page"])&&$_GET["cur_page"]!="") {
    if ($_GET["cur_page"]<1) {
    $cur_page = 1;
    }elseif ($_GET["cur_page"]>$maxpage){
    $cur_page = $maxpage;
    }else {
    $cur_page = $_GET["cur_page"];
    }
    }
    $start_position = ($cur_page-1)*$pagesize;
    //分页代码结束}
    //设置sql语句
    $sql="select * from Andy limit $start_position,$pagesize";
    //使用mysql_query()查询语句
    $result = mysql_query($sql);
    /* 以数组的形式处理数据
    while ($row = mysql_fetch_array($result)) {
          echo $row[0]."++".$row[1]."<br />";
    }
    */
    //以 键名/值 的方式处理数据
    while ($row = mysql_fetch_assoc($result)){
    echo $row["id"]."=>".$row["name"]."<br />";
    }
    if ($cur_page==1) {
    echo "首 页&nbsp;&nbsp;上一页";
    }else{
    echo "<a href=\"?cur_page=1\">首 页</a>&nbsp;&nbsp;<a href=\"?cur_page=".($cur_page-1)."\">上一页</a>";
    }
    echo "&nbsp;&nbsp;";
    if ($cur_page==$maxpage) {
    echo "下一页&nbsp;&nbsp;末页";
    }else{
    echo "<a href=\"?cur_page=".($cur_page+1)."\">下一页</a>&nbsp;&nbsp;<a href=\"?cur_page=".($maxpage)."\">末 页</a>";
    }
    //使用完释放资源
    mysql_free_result($result);
    //关闭数据库链接
    mysql_close($conn)
    ?>
      

  4.   

    adodb中用PageExecute函数得到记录集,然后$rs->_currentPage可得当前页码,$rs->_lastPageNo可得总页数,$rs->_maxRecordCount得到记录总数。