代码如下: ---------------------------------------在要分页的sql上面加上如下代码 ---------------------------------------------------- $page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1; $record_count = $db->getOne('总数的sql语句'); //例如 $record_count = $db->getOne('select count(*) from '.$ecs->table('goods')); $pager = get_pager('php页面', php页面的参数 , $record_count, $page,每页显示几个,分页样式); //例如 $pager = get_pager('test.php', array('act' => $_REQUEST['act'],'id' => $_REQUEST['id']), $record_count, $page,5,0); $smarty->assign('pager', $pager); //分页的sql语句 $sql= 分页sql语句.' LIMIT '.$pager['start'].','.$pager['size']; //例如 $sql= 'select count(*) from '.$ecs->table('goods').' LIMIT '.$pager['start'].','.$pager['size']; ------------------------------------------------------------------get_pager 方法---------------------------------------------- function get_pager($url, $param, $record_count, $page = 1, $size = 10, $styleid=1) { $size = intval($size); if ($size < 1) { $size = 10; } $page = intval($page); if ($page < 1) { $page = 1; } $record_count = intval($record_count); $page_count = $record_count > 0 ? intval(ceil($record_count / $size)) : 1; if ($page > $page_count) { $page = $page_count; } /* 分页样式 */ $pager['styleid'] = $styleid; $page_prev = ($page > 1) ? $page - 1 : 1; $page_next = ($page < $page_count) ? $page + 1 : $page_count; /* 将参数合成url字串 */ $param_url = '?'; foreach ($param AS $key => $value) { $param_url .= $key . '=' . $value . '&'; } $pager['url'] = $url; $pager['start'] = ($page -1) * $size; $pager['page'] = $page; $pager['size'] = $size; $pager['record_count'] = $record_count; $pager['page_count'] = $page_count; if ($pager['styleid'] == 0) { $pager['page_first'] = $url . $param_url . 'page=1'; $pager['page_prev'] = $url . $param_url . 'page=' . $page_prev; $pager['page_next'] = $url . $param_url . 'page=' . $page_next; $pager['page_last'] = $url . $param_url . 'page=' . $page_count; $pager['array'] = array(); for ($i = 1; $i <= $page_count; $i++) { $pager['array'][$i] = $i; } } else { $_pagenum = 10; // 显示的页码 $_offset = 2; // 当前页偏移值 $_from = $_to = 0; // 开始页, 结束页 if($_pagenum > $page_count) { $_from = 1; $_to = $page_count; } else { $_from = $page - $_offset; $_to = $_from + $_pagenum - 1; if($_from < 1) { $_to = $page + 1 - $_from; $_from = 1; if($_to - $_from < $_pagenum) { $_to = $_pagenum; } } elseif($_to > $page_count) { $_from = $page_count - $_pagenum + 1; $_to = $page_count; } } $url_format = $url . $param_url . 'page='; $pager['page_first'] = ($page - $_offset > 1 && $_pagenum < $page_count) ? $url_format . 1 : ''; $pager['page_prev'] = ($page > 1) ? $url_format . $page_prev : ''; $pager['page_next'] = ($page < $page_count) ? $url_format . $page_next : ''; $pager['page_last'] = ($_to < $page_count) ? $url_format . $page_count : ''; $pager['page_kbd'] = ($_pagenum < $page_count) ? true : false; $pager['page_number'] = array(); for ($i=$_from;$i<=$_to;++$i) { $pager['page_number'][$i] = $url_format . $i; } } $pager['search'] = $param; return $pager; } ------------------------------------------------------ html 分页代码 --------------------------------------------------------- <!--翻页 start--> <form name="selectPageForm" action="{$smarty.server.PHP_SELF}" method="get"> <!-- {if $pager.styleid eq 0 } --> <div id="pager"> 总计{$pager.record_count}个记录,共{$pager.page_count} 页。 <span> <a href="{$pager.page_first}">{$lang.page_first}</a> <a href="{$pager.page_prev}">{$lang.page_prev}</a> <a href="{$pager.page_next}">{$lang.page_next}</a> <a href="{$pager.page_last}">{$lang.page_last}</a> </span> <!--{foreach from=$pager.search key=key item=item}--> {if $key eq 'keywords'} <input type="hidden" name="{$key}" value="{$item|escape:decode_url}" /> {else} <input type="hidden" name="{$key}" value="{$item}" /> {/if} <!--{/foreach}--> <select name="page" id="page" onchange="selectPage(this)"> {html_options options=$pager.array selected=$pager.page} </select> </div> <!--{else}--> <div id="pager" class="pagebar"> <span class="f_l f6" style="margin-right:10px;">总计<b>{$pager.record_count}</b> 个记录</span> <!-- {if $pager.page_first} --><a href="{$pager.page_first}">{$lang.page_first} ...</a><!-- {/if} --> <!-- {if $pager.page_prev} --><a class="prev" href="{$pager.page_prev}">{$lang.page_prev}</a><!-- {/if} --> <!-- {if $pager.page_count neq 1} --> <!--{foreach from=$pager.page_number key=key item=item}--> <!-- {if $pager.page eq $key} --> <span class="page_now">{$key}</span> <!-- {else} --> <a href="{$item}">[{$key}]</a> <!-- {/if} --> <!--{/foreach}--> <!-- {/if} --> <!-- {if $pager.page_next} --><a class="next" href="{$pager.page_next}">{$lang.page_next}</a><!-- {/if} --> <!-- {if $pager.page_last} --><a class="last" href="{$pager.page_last}">...{$lang.page_last}</a><!-- {/if} --> <!-- {if $pager.page_kbd} --> <!--{foreach from=$pager.search key=key item=item}--> {if $key eq 'keywords'} <input type="hidden" name="{$key}" value="{$item|escape:decode_url}" /> {else} <input type="hidden" name="{$key}" value="{$item}" /> {/if} <!--{/foreach}--> <kbd style="float:left; margin-left:8px; position:relative; bottom:3px;"><input type="text" name="page" onkeydown="if(event.keyCode==13)selectPage(this)" size="3" class="B_blue" /></kbd> <!-- {/if} --> </div> <!-- {/if} --> </form> <!--翻页 END-->