PHP自练项目之数字分页效果
学习要点:
1.LIMIT 用法
2.各种参数
3.超链接调用
第一:先在文件中设置数字分页模块;我的文件是(blog.php)
<span style="color: #008000">//</span><span style="color: #008000">分页模块</span><span style="color: #800080">$_page</span> = <span style="color: #800080">$_GET</span>['page'<span style="color: #000000">];</span><span style="color: #800080">$_pagesize</span> = 10<span style="color: #000000">;</span><span style="color: #800080">$_pagenum</span> = (<span style="color: #800080">$_page</span> - 1) * <span style="color: #800080">$_pagesize</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">首页要得到所有的数据总和</span><span style="color: #800080">$_num</span>=<span style="color: #008080">mysql_num_rows</span>(_query("SELECT tg_id FROM tg_user"<span style="color: #000000">));</span><span style="color: #800080">$_pageabsolute</span>=<span style="color: #800080">$_num</span> / <span style="color: #800080">$_pagesize</span>;
要注意的是在数据库中取集的时候
//我们必须每次重新读取结果集,而不是从新去执行SQL语句。
$_result = _query(“SELECT tg_username,tg_sex,tg_face FROM tg_user ORDER BY tg_reg_time DESC LIMIT $_pagenum,$_pagesize”);
设置分页循环的效果
<span style="font-size: 16px"><div id="page_num"> <ul> <?php <span style="color: #0000ff">for</span>(<span style="color: #800080">$i</span>=0;<span style="color: #800080">$i</span><<span style="color: #800080">$_pageabsolute</span>;<span style="color: #800080">$i</span>++<span style="color: #000000">){ </span><span style="color: #0000ff">if</span> (<span style="color: #800080">$_page</span> == (<span style="color: #800080">$i</span>+1<span style="color: #000000">)) { </span><span style="color: #0000ff">echo</span> '<li>$i</span>+1).'" class="selected">'.(<span style="color: #800080">$i</span>+1).'</li>'<span style="color: #000000">; }</span><span style="color: #0000ff">else</span><span style="color: #000000">{ </span><span style="color: #0000ff">echo</span> '<li>$i</span>+1).'">'.(<span style="color: #800080">$i</span>+1).'</li>'<span style="color: #000000">; } } </span>?> </ul> </div></span>
相对应的CSS
#page_num { height:20px; clear:both; padding:10px 0; position:relative;}#page_num ul { position:absolute; right:30px; height:20px;}#page_num ul li { float:left; width:26px; height:20px;}#page_num ul li a { display:block; width:20px; height:20px; line-height:20px; border:1px solid #333; text-align:center; text-decoration:none;}#page_num ul li a:hover,#page_num ul li a.selected { background:#666; font-weight:bold; color:#fff;}
在其中可能会由于编码出现容错误,解决的方法是
<span style="font-size: 18px"><span style="color: #008000">//</span><span style="color: #008000"> 分页模块</span><span style="color: #0000ff">if</span> (<span style="color: #0000ff">isset</span> ( <span style="color: #800080">$_GET</span> ['page'<span style="color: #000000">] )) { </span><span style="color: #008000">//</span><span style="color: #008000"> 在数据不再数据范围内出错的解决方法</span> <span style="color: #800080">$_page</span> = <span style="color: #800080">$_GET</span>['page'<span style="color: #000000">]; </span><span style="color: #008000">//</span><span style="color: #008000"> 是否为空,是否小于0,是否不是数字。//如果其中有一个是,那么就=1</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">empty</span> ( <span style="color: #800080">$_page</span> )||<span style="color: #800080">$_page</span> < 0 || !<span style="color: #008080">is_numeric</span>( <span style="color: #800080">$_page</span><span style="color: #000000"> )) { </span><span style="color: #800080">$_page</span> = 1<span style="color: #000000">; } </span><span style="color: #0000ff">else</span><span style="color: #000000"> { </span><span style="color: #800080">$_page</span> = <span style="color: #008080">intval</span> ( <span style="color: #800080">$_page</span> ); <span style="color: #008000">//</span><span style="color: #008000"> 如果是数字,但是小数,那么就$_page = intval($_page);转换成<i>*本5文来源gaodai$ma#com搞$$代**码)网@</i><img>搞代码gaodaima</img>整数</span><span style="color: #000000"> }} </span><span style="color: #0000ff">else</span><span style="color: #000000"> { </span><span style="color: #800080">$_page</span> = 1<span style="color: #000000">;}</span><span style="color: #800080">$_pagesize</span> = 10<span style="color: #000000">;</span><span style="color: #800080">$_num</span> = _num_rows( _query ( "SELECT tg_id FROM tg_user"<span style="color: #000000"> ) );</span><span style="color: #0000ff">if</span> (<span style="color: #800080">$_num</span>==0<span style="color: #000000">) { </span><span style="color: #800080">$_pageabsolute</span>=1<span style="color: #000000">;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{ </span><span style="color: #800080">$_pageabsolute</span>=<span style="color: #008080">ceil</span>(<span style="color: #800080">$_num</span>/<span style="color: #800080">$_pagesize</span><span style="color: #000000">);}</span><span style="color: #008000">//</span><span style="color: #008000">当页码大于总页码的时候,就会返回到总页码的最后一页</span><span style="color: #0000ff">if</span> (<span style="color: #800080">$_page</span>><span style="color: #800080">$_pageabsolute</span><span style="color: #000000">) { </span><span style="color: #800080">$_page</span>=<span style="color: #800080">$_pageabsolute</span><span style="color: #000000">;}</span><span style="color: #800080">$_pagenum</span> = (<span style="color: #800080">$_page</span> - 1) * <span style="color: #800080">$_pagesize</span>;</span>