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

十天学会php之第八天

3 E$ I1 ]  ?1 F! M
学习目的:做一个分页显示& {% [5 P( d4 u" \
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
& r  F1 v) R' ^! N$ _" v3 |% m+ a+ y4 |( h# `  L0 g
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

; P  N$ x. u$ y8 P: D4 {, {2 N
! @6 `, L4 ]; C( d9 E- M$execc="select count(*) from tablename ";
  t+ y/ i) w: e$resultc=mysql_query($execc);, B+ s6 r' X$ H; ]0 n( {$ `9 l4 J: u- ]8 g
$rsc=mysql_fetch_array($resultc);
2 r3 v' ]1 j' z8 ^  n4 ]+ W$num=$rsc[0];( c* n& o. x0 K. f! {3 t+ V# }
# g  G; Z! t* x' R' [) R3 t
这样可以得到记录总数, }$ @6 \# {* @) b5 f
ceil($num/10))如果一页10记录的话,这个就是总的页数
/ t2 ~" y: _( Y3 ^% B9 `  e9 a# K所以可以这么写
& i7 V  t. W( Z1 Gif(empty($_GET['page']))% [8 U+ U5 x3 o* a% i, e
{! |" L- v( D' e
$page=0;& Y5 ~4 i! s- [/ }9 y. K3 [: K
}
1 y5 Q8 i/ z2 p- ^8 X/ delse6 U/ I8 ~& R7 D1 r% D4 E
{
) [4 \8 \4 G* O4 A$page=$_GET['page'];
  M* A5 w: T6 v' S% T" H8 Sif($page<0)$page=0;3 M7 ~7 U- i% U2 r* N
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
' Z& T! ^+ D) P; M0 Y/ @}
7 K# Z% L0 D  ?7 d$ s& Z$ {- h, i5 `6 M' l0 b4 x" o6 s  `9 B
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";. g& q( t! O2 k' A. l- `0 F7 t
//一页是10记录的
+ T8 u, ]1 g+ F) A) Q& e
最后我们需要做的就是几个连接:4 u' i2 D+ g3 _3 }# z8 e4 W/ \
<a href="xxx.php?page=0">FirstPage</a> 2 c+ e4 M9 Y, p4 c' I* a/ I
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
3 `+ A; ^* J) l0 ^<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 6 V! [1 J, u8 O- X7 ~3 _
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>; e. C2 b4 r) y' z: e' J
1 F+ h/ q5 M4 ]/ a- q
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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