返回列表 发帖

十天学会php之第八天

* k) g8 Q5 V# C4 Z4 c
学习目的:做一个分页显示
8 Q' V' Q& _# `+ x关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num# a5 j4 c5 i  [

. S; z! S+ m1 r1 ~8 i5 M对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
0 \0 i( I" p2 Y7 r  f8 Z
* Q6 n2 t' _/ L) f! r! k, m# ~
$execc="select count(*) from tablename ";
1 h' K) O, c, T" e3 ]0 G# X$resultc=mysql_query($execc);
$ }* J4 G2 g& K7 B$rsc=mysql_fetch_array($resultc);
/ V+ _: J" C# Q$num=$rsc[0];) v/ H, M) b9 D6 N
; J6 b! V7 t( d6 h# X
这样可以得到记录总数
) s# J$ y/ J5 W( m' Z8 I7 j) Tceil($num/10))如果一页10记录的话,这个就是总的页数
7 |; H* C2 W( Z7 O7 c# o所以可以这么写7 K; O+ l! s& W2 v/ R- I6 G
if(empty($_GET['page']))1 c# _7 y  N4 Q# ]! U. Q* I
{" n# g/ i1 Z; x5 @' E5 U; R
$page=0;0 B9 Y9 A9 n+ Y5 ]5 j( Y6 W: R, ]
}+ M, `! K7 \) |1 P
else
% I* o9 A, \( C4 _! O/ b( w{
& s1 S* a' B8 {' S# z* R$page=$_GET['page'];8 _1 x/ `: G8 m) ]5 ~( a: v
if($page<0)$page=0;' B* o! W# i7 r! |7 r
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
. \, m0 O  \) i' ?}
6 l/ Q6 I# R+ F8 q( M& w" _& T7 U( ^. U
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";4 S+ y+ j- c) i: E( {
//一页是10记录的

; ]) T0 }% R! R) M最后我们需要做的就是几个连接:
7 _# \+ d" I; M5 ?8 U4 `$ x<a href="xxx.php?page=0">FirstPage</a>
2 ]) \! t4 F# I2 \, @<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 0 K; w. ]& S1 F8 h+ w
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 0 H! U) _* D- N: f& M( p
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
* u4 ]4 e; f# D, C5 ~+ P
  s" G" w2 e0 @: Z% }7 R  M$ s3 G9 o
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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