获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天

: i* z9 Y1 [, l3 c6 Y+ l
学习目的:做一个分页显示0 r% q5 F% e; E, r* s
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
3 I* Y: Q( k9 t
7 I$ A9 c* L- _  s; [* a/ v7 J对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
1 L& }1 g. ]7 e0 y9 G1 Y3 c; u! z
2 V3 d; s( H8 L# }4 A
$execc="select count(*) from tablename ";
( ~, v) R. {: Q, g+ e+ J! p$resultc=mysql_query($execc);, B$ ]7 ~& t- _
$rsc=mysql_fetch_array($resultc);
) J6 u- Y. ]2 c8 A3 a2 G5 O$num=$rsc[0];# E7 `7 F! {4 I' k8 b
0 ?" ?' T5 Z* c8 e# i3 ^
这样可以得到记录总数; E) l( _- c* d/ {+ I. ^9 I' _
ceil($num/10))如果一页10记录的话,这个就是总的页数$ m5 `6 l( t8 h
所以可以这么写
2 Q3 A% c: a" U0 l1 @if(empty($_GET['page']))1 {( g/ o% \3 f' n$ h
{
+ G7 Q3 v  n5 b# N" _" ]# i4 t$page=0;- X. e3 x6 b$ H& {
}$ d/ l! M  z& X/ c, y& p: X
else* S, z% ]0 U3 ?3 I- X8 U
{
2 D( f# Y  w0 ^+ e7 V$page=$_GET['page'];
8 f+ S# |7 h% `% T( `if($page<0)$page=0;
; h  i. \4 |3 b+ e' U3 ?4 ~if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1; M8 ?: c0 R, H. E: q5 W9 `
}
' Q: Q. r1 C# y5 {4 g0 O
9 R) z6 O5 i$ Z4 l$ X7 ~8 [3 W& X. I$ E这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
) ?( ]; ~0 t, Z. N5 {//一页是10记录的

2 L, o: j7 U- }' F, z最后我们需要做的就是几个连接:, E0 T3 ]  q4 y' R4 Q6 \
<a href="xxx.php?page=0">FirstPage</a>
- E& z3 h8 ^9 P" I. v<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
9 Z% Y4 d( S& B<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 0 `! ]( k- V6 v, s+ N
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
1 D4 H3 ?) A) J) W) I  S
! ?  d' a0 ~. Z" V: `( W
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: