  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
% C$ o0 v$ E% c
学习目的:做一个分页显示0 G9 v- o" T: E- O$ K" Z6 t
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
+ s( g Z' ^8 x4 G. \" F: |" [" |' `
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。$ B# D3 [3 W R4 F7 @4 ]
9 U# K3 c# p, X" K: H7 s
$execc="select count(*) from tablename ";
% j7 \ [) r2 [* J. D' c! H$resultc=mysql_query($execc);+ D1 M& ~ K Z: d
$rsc=mysql_fetch_array($resultc);
& {! t2 k6 J' B9 x% R$ |$num=$rsc[0];
+ a$ D& ^ F' G; i% w9 Z3 Y( M- j ]5 E( ]
( Z' i! [* o) V* @这样可以得到记录总数
/ a4 S/ j j! ~0 ?! \ceil($num/10))如果一页10记录的话,这个就是总的页数. F8 w0 O w3 F9 @
所以可以这么写. F- B- I \, r
if(empty($_GET['page']))
8 x3 r4 A& ]7 X9 t, a{3 Y- e. L! f0 d* E/ W4 O( ]1 h6 o
$page=0;0 K7 I _+ [9 `% X
}8 H! D4 B8 I R# s, O
else6 D# i3 p! g3 \* `5 } B5 k
{
' R- }9 {* B5 {! ?$page=$_GET['page'];
3 x1 L* P9 x m( m8 zif($page<0)$page=0;6 _9 z# B; l( R& I" |1 i
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-15 f5 k! r8 N. T
}
' b0 o. u7 _/ T4 l' ?1 [9 O
X. N) Q2 A/ z* V这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
3 G# t9 s% w; H5 T5 b+ s//一页是10记录的# r& B: L# I: ~/ o5 C
最后我们需要做的就是几个连接:
7 k% B! k j; y<a href="xxx.php?page=0">FirstPage</a> - A, h2 ], ?/ [1 }; L
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> ' Y! K" I$ e- d& n4 b# T! r2 K
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
* ^. |- {/ S7 g. m, K! i<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>- n6 {: z# {6 o8 {, }& u8 u
9 {6 E4 z( \& X" x
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|