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

十天学会php之第八天

0 P* _7 N2 Z; P* J$ W8 u# ~
学习目的:做一个分页显示
1 S1 Z. p8 R7 y$ {) Y, o关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num- F- b2 k  M7 S" C6 [! u4 j" `
1 U+ a9 h3 \: ^2 F! a
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
7 L( ]+ V' @# Y; M) ?  G5 K

; S! I3 M/ l6 t, H5 |- w$execc="select count(*) from tablename ";
& ]$ \4 A3 l& f$resultc=mysql_query($execc);
# A+ C6 j- S4 ?# Y9 |; ~9 c$rsc=mysql_fetch_array($resultc);7 O! w. M, j2 X# e
$num=$rsc[0];) Z" J, A1 s0 X. k

; ?% Q* Z0 R) d5 ?. z6 k2 i+ v
这样可以得到记录总数- c3 B/ U0 i) [9 Z6 Z
ceil($num/10))如果一页10记录的话,这个就是总的页数
: g. w& Q0 Z8 u! F( L: S' s所以可以这么写
- ~+ e+ m( S7 E4 L4 R  z' D3 P, Pif(empty($_GET['page']))/ @8 ?$ O% ~8 z% H# W
{" J( q) h& r+ Q
$page=0;
( {+ J3 j/ m! _/ M1 i& \9 }}
7 y0 W- n# z# W: V* ?else
, {3 P# w- x: E6 s* g7 [% X) z{; H9 \" b6 m' E4 \" L  C$ x7 {* C) u  Z
$page=$_GET['page'];  j: A, N7 o* ?) Q
if($page<0)$page=0;' \7 x' a3 p& O
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1+ w" _; M" P& q/ ~- w9 ?: I
}   W& b. j6 x3 B

3 t( ]; n! c! c0 A( b! r) v' B这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";" j: K! r2 Q6 N
//一页是10记录的
" e) P8 L# J1 L7 g) m7 b/ h# T) U2 P
最后我们需要做的就是几个连接:+ I& ~) f7 O. E: V# Z5 F$ @5 n
<a href="xxx.php?page=0">FirstPage</a> " d" l" l0 ~/ q) y; R
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 7 \, M) [/ H$ p/ Q9 k& k7 I. k; l
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
9 D! a% J) g6 T, W3 G5 q& x, x<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>+ T1 t) x$ E) S, q+ o4 {! e

/ S3 Z" }# i9 F& m! }# d& ^& D
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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