  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14247
- 金币
- 2414
- 威望
- 1647
- 贡献
- 1362
|
_+ {* K b& P. c7 J学习目的:做一个分页显示
4 X+ _+ d6 [6 P" q- Z( r$ W3 `& l" Q关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
: s% D8 W3 _# K, u2 e4 q
) y! d# P# g/ ^1 m2 n对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。1 c1 L8 ]: ^/ Y) Q& T# U$ {5 m
" F% h& K a2 L4 E# ^8 U
$execc="select count(*) from tablename ";
' T1 g. a; i4 q- I- B$resultc=mysql_query($execc);% X& C$ E" h0 H( ~
$rsc=mysql_fetch_array($resultc);
4 o$ R, Y( h% _! d) u: e$num=$rsc[0];0 g4 @8 L, [% Q8 j0 W$ O
. E1 r7 {! J% ^3 ?3 n
这样可以得到记录总数
% X, R, q! ?+ E, b. A' i( C% Cceil($num/10))如果一页10记录的话,这个就是总的页数
1 k% i, |, v7 K' B5 L0 m0 Z所以可以这么写/ f0 x0 N% ^. s- ?
if(empty($_GET['page']))
% g5 X! L0 z' W{
9 o5 g% ` [) V [. b$page=0;2 b# l8 C" X7 v- G" q' n; a
}& _- \/ p$ g8 d
else
2 t9 I$ w- H+ ]+ j- L; f{
4 u; y" Z! H( r0 t3 e1 `! y$page=$_GET['page'];
+ Z! E9 z& l) w8 |- G7 p5 Wif($page<0)$page=0;; \5 f0 }1 k' a. H9 ?/ E4 c( }2 A
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
0 K( i8 Q1 ?4 B% t4 O/ l6 B" u} 1 X# u. d5 V( b7 {
" N6 T" a& R4 ~7 P- W Z0 e2 H1 z
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10"; U1 H' k$ @0 v7 t* o m. Q
//一页是10记录的' `2 \7 M$ L+ x% s1 z M8 ^# d
最后我们需要做的就是几个连接:6 U! w$ W6 V9 \7 p) H( V
<a href="xxx.php?page=0">FirstPage</a>
0 |# l- \$ @1 Y+ V! d<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> - e* b6 g n) E" h- E5 ]- ?
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 8 F( i5 n/ h1 l/ G
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>) C8 q7 X/ p! x ]% l' Z
5 \% M' x& {# [& o这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|