|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14389
- 金币
- 2480
- 威望
- 1647
- 贡献
- 1428
|
( j+ w# k% Y5 l3 o) ~: {5 c1 u学习目的:做一个分页显示, u; u, Z' J( D+ E
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num; s B& m2 t$ f( ], ?( w9 c$ N
7 q0 c4 m) w% R3 r* h! h- }0 u- I
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
, W1 O3 V7 A0 \$ s X/ L- ?2 y7 N9 y8 m) \1 H) r
$execc="select count(*) from tablename ";
+ I/ ~8 o/ K6 w7 d6 K$resultc=mysql_query($execc);
; \$ D1 \2 Z6 i/ d# d7 V' L+ ?$rsc=mysql_fetch_array($resultc);
w2 s$ e' S6 F+ ~$num=$rsc[0];
8 h" |% j8 u2 a. ?& r$ X- B5 ~( s: i
( R" ^2 ]( j6 t这样可以得到记录总数
4 L/ d' V% ?+ L, R5 \& S7 h- {ceil($num/10))如果一页10记录的话,这个就是总的页数
: V% u5 F4 p, R# g: ~0 W所以可以这么写& h# M* g4 }1 W2 \ K0 d2 ?
if(empty($_GET['page']))$ y4 ?9 V) E Y8 v) Y& w+ Q! B
{
2 ^4 {: e* u8 ?4 |: ?) A$page=0;) l" B! }" q O$ L: Q
}$ _6 t; Z# C" c! F5 ~8 u
else( @. }. h0 n; _. S, w j9 ?* y
{
; c+ ^& G( ]* Y) `4 C, N$page=$_GET['page'];5 j" _% k* @7 m6 X4 r; H
if($page<0)$page=0;
: A- D* U; |1 [- _' p+ s9 E0 ]8 x( Jif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1$ z7 F, R$ T% x0 s) H$ r, ~0 h
} 1 G2 Z0 R5 ^7 Z6 U. o% z
, W7 ~( D# ?0 B3 k
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
, w' `- g u* Y: i W8 @; ~5 N//一页是10记录的; q+ y8 [8 h( u4 m! `' v* A3 Z
最后我们需要做的就是几个连接:
& p$ ]3 ?. r" p& [7 l4 M<a href="xxx.php?page=0">FirstPage</a> 9 |( t) a; s8 q- r" D2 m
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
& Q" o( C0 \+ ?( K<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
) m2 t5 j) B! H' {6 m' \<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>& j8 D5 W4 i# S
9 y# o( F; e3 S7 i0 Z) ?* \& R5 h
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|