|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
K7 X: r( g, X3 ^
学习目的:做一个分页显示
" @) w* g$ b0 a; U关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num/ e- c6 ?& O( G$ Q1 D3 y7 ?0 Z
* q8 I. N3 j6 M( V+ M% o
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。0 f1 I5 j; @9 P) U# u! i
' l# t" u# e2 v% @5 l
$execc="select count(*) from tablename ";9 u0 s8 b) p( U! h& {7 E
$resultc=mysql_query($execc);
, L3 t6 O# y: c5 i6 @. K$rsc=mysql_fetch_array($resultc);8 g! H9 `( T. S. C+ \
$num=$rsc[0];
2 s$ y- i( u! W6 t
7 v& @& {# L- R4 R这样可以得到记录总数
% Y; N( j2 b: {1 ]" \# w" h/ W. {ceil($num/10))如果一页10记录的话,这个就是总的页数
* f, x/ n# v* w0 Q所以可以这么写
- Z! F* P- q. N: U9 B1 ]if(empty($_GET['page']))& V& ^/ [2 q0 ?8 \5 a
{/ y6 p, t; ], |& r7 e; N
$page=0;7 y* u$ k/ U. z2 g. W2 T6 K
}! a; D) ~2 l/ t% h
else
4 g, G2 g3 J% k: d1 a @& W0 U{
}5 X6 K/ [$ S3 ^4 H$page=$_GET['page'];6 H2 H/ Y. P/ ~+ v6 g" y% q& x
if($page<0)$page=0;
2 F! A& P! y1 a s5 \3 [' cif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1# _; U6 [% A3 k) W% a+ }( C1 l
} + `% l2 R/ M% I* G. g8 P
9 z+ F: \! r( k. `1 I' M: T3 i" h这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";1 O6 }' n4 j% B' Q
//一页是10记录的. H- K# H, z9 L$ J2 c
最后我们需要做的就是几个连接:
# U) \5 G' m1 w. y* y8 u# t; n<a href="xxx.php?page=0">FirstPage</a>
^) T; `' q1 I1 J9 H<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
* I9 M8 M3 G* `2 C/ z: C<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> # q {+ I/ ~( K* n: C
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>/ g% {6 O. [ P: A
3 k% y8 @' }$ n$ F1 i9 S9 S" w2 |这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|