<?php
$MYSQL->query("select cu.*,cy.name from customer cu,custtype cy where 1=1 and cu.code=cy.code limit 0,18");
for($i=1;$i<$count;$i++){
$MYSQL->fetch($i);
$customerid=$MYSQL->data[customerid];  // 客户编号
$KSName=$MYSQL->data[KSName];  //  用户名称 - 简称
echo "<td align='center'>$i</td>"; //序号
echo "<td align='center'>$customerid</td>";  // 客户编号
echo "<td align='center'>$KSName</td>"; //用户名称 - 简称
?>我是每18 条记录换一页,在第一页序号是从 1 - 18 ,但是我切换到第2页时,序号又是从1 开始一直到第18,第3页同样如此,可能是因为我分页的缘故,我试 了,如果不分页时没有问题的,但是这里我不可能不分页的,求各位没有没好的方法解决这个问题。。phpphp 换页后,序号的问题 

解决方案 »

  1.   

     limit 0,18  
    你这里limit第一个一直是0,当然是那个结果啦
      

  2.   

    limit 0,18 这里应该是分页参数传过去。
      

  3.   

    for($i=1;$i<$count;$i++){
    echo "<td align='center'>$i</td>"; //序号你的序号是程序产生的,当然都是从 1 开始楼上的回复这是解决换页后内容不变的问题
    不能解决序号重新开始的问题
      

  4.   

    设期望的页号由 $_GET['page'] 传入,则有$offs = 18 * isset($_GET['page']) ? $_GET['page'] - 1 : 0;
    $MYSQL->query("select cu.*,cy.name from customer cu,custtype cy where 1=1 and cu.code=cy.code limit $offs,18");
    for($i=$offs+1;$i<$offs+$count;$i++){ 
    $MYSQL->fetch($i);
    $customerid=$MYSQL->data[customerid];  // 客户编号
    $KSName=$MYSQL->data[KSName];  //  用户名称 - 简称
    echo "<td align='center'>$i</td>"; //序号
    echo "<td align='center'>$customerid</td>";  // 客户编号
    echo "<td align='center'>$KSName</td>"; //用户名称 - 简称
      

  5.   

    我觉得版主的方法是可以的,先想办法把你页码传入$offs,后面就按照6#的写就可以了。
      

  6.   

    function toolkit_pages($page, $total, $phpfile, $pagesize = 3, $pagelen = 3, $link = "&") {
    $num_t_count = $total;
    $phpfile = "index.php?" . $phpfile;
    $pagecode = ''; //定义变量,存放分页生成的HTML
    $page = intval ( $page ); //避免非数字页码
    $total = intval ( $total ); //保证总记录数值类型正确
    if (! $total)
    return array (); //总记录数为零返回空数组
    $pages = ceil ( $total / $pagesize ); //计算总分页
    //处理页码合法性
    if ($page < 1)
    $page = 1;
    if ($page > $pages)
    $page = $pages;
    //计算查询偏移量
    $offset = $pagesize * ($page - 1);
    //页码范围计算
    $init = 1; //起始页码数
    $max = $pages; //结束页码数
    $pagelen = ($pagelen % 2) ? $pagelen : $pagelen + 1; //页码个数
    $pageoffset = ($pagelen - 1) / 2; //页码个数左右偏移量
    //生成html
    $pagecode = '<div class="page"><span>' . $total . "</span>&nbsp;";
    $pagecode .= "<span>$page/$pages</span>&nbsp;"; //第几页,共几页
    //如果是第一页,则不显示第一页和上一页的连接
    if ($page != 1) {
    $pagecode .= "<a href=\"{$phpfile}" . $link . "page=1\"><<</a>&nbsp;"; //第一页
    $pagecode .= "<a href=\"{$phpfile}" . $link . "page=" . ($page - 1) . "\">Prev</a>&nbsp;"; //上一页
    }
    //分页数大于页码个数时可以偏移
    if ($pages > $pagelen) {
    //如果当前页小于等于左偏移
    if ($page <= $pageoffset) {
    $init = 1;
    $max = $pagelen;
    } else { //如果当前页大于左偏移
    //如果当前页码右偏移超出最大分页数
    if ($page + $pageoffset >= $pages + 1) {
    $init = $pages - $pagelen + 1;
    } else {
    //左右偏移都存在时的计算
    $init = $page - $pageoffset;
    $max = $page + $pageoffset;
    }
    }
    }
    //生成html
    for($i = $init; $i <= $max; $i ++) {
    if ($i == $page) {
    $pagecode .= '<span>' . $i . '</span>&nbsp;';
    } else {
    $pagecode .= "<a href=\"{$phpfile}" . $link . "page={$i}\">$i</a>&nbsp;";
    }
    }
    if ($page != $pages) {
    $pagecode .= "<a href=\"{$phpfile}" . $link . "page=" . ($page + 1) . "\">Next</a>&nbsp;"; //下一页
    $pagecode .= "<a href=\"{$phpfile}" . $link . "page={$pages}\">>></a>&nbsp;"; //最后一页
    }
    $pagecode .= '</div>';

    return array ('pagecode' => $pagecode, 'sqllimit' => ' limit ' . $offset . ',' . $pagesize );

    }
    //引用说明
    /*分页列表*/
    if (url_get ( 'count_page' ) != '') {
    $count_page = url_get ( 'count_page' );
    } else {
    $count_page = 15;
    }
    if (url_get ( 'page' ) <= 0 || url_get ( 'page' ) == '') {
    $page = 1;
    } else {
    $page = url_get ( 'page' );
    }
    $t_count = $this->Cmspage_model->row_array ();//统计记录个数自己写个sql语句
    $t_first = ($page - 1) * $count_page;
    $list = $this->Cmspage_model->result_array ( $t_first, $count_page );//返回数组自己写个sql语句
    //引用分页函数
    $getpageinfo = toolkit_pages ( $page, $t_count, "?c=page&m=index", $count_page, 8 );
      

  7.   

    6楼已经帮你解决了,你还在求,总不能要求别人帮你写出完整代码吧。重点去看一下sql语句的limit的用法。你技术分800多是如何得来的?你是来逗我们玩的吧。。
      

  8.   

    你换页码的时候,应该是是要拿到url传入的$page值的,比如是$_GET['page'];
    然后,你每分一页的时候,都是有一个$page_size的,你的$page_size=18;
    所以,你在页面上显示的时候,那个列表的id号应该是:($page-1)*$page_size+$i;$i的值就是数组的下标。$page=$_GET['page'];
    $page_size=18;
    $count=$MYSQL->query("select count(*) from customer cu,custtype cy where 1=1 and cu.code=cy.code");$pages = ceil($count/$page_size);
    if($page<1) $page = 1;
    if($page>$pages)$page = $pages;
    $offset = ($page-1) * $page_size;
    if($offset<0) $offset = 0;$MYSQL->query("select cu.*,cy.name from customer cu,custtype cy where 1=1 and cu.code=cy.code  limit ".$offset.",".$page_size);for($i=1;$i<$count;$i++){
    $MYSQL->fetch($i);
    $customerid=$MYSQL->data['customerid'];  // 客户编号
    $KSName=$MYSQL->data['KSName'];  //  用户名称 - 简称
    $thisPage=($page-1).$page_size+$i;
    echo "<td align='center'>".$thisPage."</td>"; //序号
    echo "<td align='center'>$customerid</td>";  // 客户编号
    echo "<td align='center'>$KSName</td>"; //用户名称 - 简称
    }
    我不知道$MYSQL这个对象的具体情况,所以,其他地方是一个思路,重点看$thisPage=($page-1).$page_size+$i;这句。
      

  9.   

    更正一下,竟然不能编辑,应该是:$thisPage=($page-1)*$page_size+$i;