  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14191
- 金币
- 2386
- 威望
- 1647
- 贡献
- 1334
|
0 Y# z3 ~* h) H- H. _8 l5 Y5 A. L# V1 s% \
学习目的:做一个分页显示
) N+ z( M" F$ r2 Y) n* u) y2 N, }4 k关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num7 M! f) A( M" d7 i1 C. p: J
, \/ v' Q4 f# A$ U对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
/ u$ F! L; W' s' e0 Y
# W' v- m& j% O7 n( F: X$execc="select count(*) from tablename ";
8 I C7 C2 m; r$ O' M- ?$resultc=mysql_query($execc);
( R( }) u+ K9 o& j+ F( P$rsc=mysql_fetch_array($resultc);# }( j" Y+ `" a$ X5 w
$num=$rsc[0];0 Z+ z2 B% ^! S9 _/ v# @" o, O
; P% q0 \) f! \. ^
这样可以得到记录总数
1 L, u/ G; A" b" N4 eceil($num/10))如果一页10记录的话,这个就是总的页数( v L3 x H+ N2 [2 Q( R2 z
所以可以这么写4 N4 N0 r( X" D1 `* f# \$ Z5 w: M7 N
if(empty($_GET['page']))8 h: R4 h c( q$ Q! W4 Q
{
. F: l: J. T1 u K$page=0;4 m6 J" z$ O# ?. H2 \9 `
}. b$ ?1 d3 y H' v! {6 ?& u
else+ U b- |' F- ?( |9 L. w
{( C8 ?: C* I+ \& ?" ^( i
$page=$_GET['page'];
& q \7 M$ s2 H7 e9 Mif($page<0)$page=0;$ {2 }0 |( f* ?8 x! B
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
/ |5 M4 S: w) [9 l: r- i- B}
2 O( H' j5 I; x( z; G5 a
) P$ K- N* `1 A: D" Q' o这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
5 Y0 B) j" y, |: i5 w- b//一页是10记录的
! i- |0 r0 J- s9 T最后我们需要做的就是几个连接:
) i' {. P' y1 l, W5 D. E<a href="xxx.php?page=0">FirstPage</a> 5 O3 G: e3 _. f% ?
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
/ |( V1 E7 J' {4 D/ t/ H<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 8 q0 A( x6 t' L
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>& _4 n1 ^3 A& a: e6 i/ U! i
; @* d4 ^& {1 g8 w这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|