php中分页技术概述

<?php
    $link=mysql_connect("localhost","root","zp");
    mysql_select_db("zp");
    
    
function showtable($taname){
    $sql="select * from {$taname}";
    $result=mysql_query($sql);
    
    
    $fields=mysql_num_fields($result);
    $rows=mysql_num_rows($result);//获取行数和列数
    
    
    $num=10;                                        //每页显示的个数
    $total=$rows;                                    //总记录数
    $url;                                            //每次请求的页面
    $cpage=isset($_GET["page"]) ? $_GET["page"] : 1;//当前页
    $pagenum=ceil($total/$num);                        //总页
    
    $offset=($cpage-1)*$num;//从哪页开始取
    $sql="select * from {$taname} limit {$offset},{$num}";//limit取几个
    $result=mysql_query($sql);//覆盖上面的
    
    $start=$offset+1;    //开始记录数
    if ($cpage==$pagenum){//当前页是最后一页
        $end=$total;
    }else{
        $end=$offset+$num;
    }                    //结束记录数
    
    $next=($cpage==$pagenum) ? 0 : $cpage+1;
    $prev=($cpage==1)? 0 : ($cpage-1);
    
    
    
    echo '<table align="center" width="800" border="1">';
    echo '<caption><h1>'.$taname.'</h1></caption>';
    echo '<tr>';
    for($i=0;$i<$fields;$i++){
        echo '<th>'.mysql_field_name($result,$i).'</th>';
    }
    echo '</tr>';
    
    while(list($id,$name,$price,$num,$desn)=mysql_fetch_row($result)){
        
        echo '<tr>';
        
        echo '<td>'.$id.'</td>';
        echo '<td>'.$name.'</td>';
        echo '<td>'.$price.'</td>';
        echo '<td>'.$num.'</td>';
        echo '<td>'.$desn.'</td>';
         
        echo '</tr>';
    }
    
        echo '<tr><td colspan="5" align="right">';

        echo "共<b>{$total}</b>条记录 , 本页面显示<b>{$start}-{$end}</b> &nbsp;&nbsp; {$cpage}/{$pagenum}";
        if ($cpage==1){
            echo "&nbsp;&nbsp;首页&nbsp;&nbsp;";
        }else{
            echo "&nbsp;&nbsp;<a href='{$url}?page=1'>首页</a>&nbsp;&nbsp;";}
        if ($prev){
            echo "&nbsp;&nbsp;<a href='{$url}?page={$prev}'>上一页</a>&nbsp;&nbsp;";            
        }else{
            echo "&nbsp;&nbsp;上一页&nbsp;&nbsp;";}
        if ($next){
            echo "&nbsp;&nbsp;<a href='{$url}?page={$next}'>下一页</a>&nbsp;&nbsp;";
        }else{
            echo "&nbsp;&nbsp;下一页&nbsp;&nbsp;";}
        
        if ($cpage==$pagenum){
            echo "&nbsp;&nbsp;末页&nbsp;&nbsp;";    
        }else{
            echo "&nbsp;&nbsp;<a href='{$url}?page={$pagenum}'>末页</a>&nbsp;&nbsp;";}
        echo '</td></tr>';
    
    echo '</table>';
    
    mysql_free_result($result);
}
    
    
    showtable('shop');
    
    mysql_close($link);
?>

seek 指针的使用

<?php
    $link=mysql_connect("localhost","root","zp");
    mysql_select_db("zp");
    
    $sql="select id,name,price,num,desn from shop";
    
    $result=mysql_query($sql);
    
    //var_dump($result); /*是个结果集*/
    /**
        一、从结果集中将记录取出
            mysql_fetch_assoc($result)    返回索引数组(下标是 1 2 3 4)
            mysql_fetch_row($result)    返回关联数组(下标是 id name...)
                    看个人爱好
            mysql_fetch_array($result)    上面两个都返回            
            mysql_fetch_object($result)    将一条记录以对象的形式返回
            
            
            [一次从结果集取出一条记录]
            
            用的指针 将指针移动到下一条记录*****mysql_data_seek($result,row);
            
            再取就是下一条,,,没了记录就返回false
            
        二、从结果集中将字段取出
                行数,列数,从哪开始
        
    **/
    
    mysql_data_seek($result,3);
    while($data=mysql_fetch_object($result)){
        print_r($data);echo"<br>";
    }
    
    
    
    

    
    
    mysql_close($link);
?>

 

posted on 2013-10-10 18:58  西瓜异族  阅读(296)  评论(0编辑  收藏  举报