  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14197
- 金币
- 2389
- 威望
- 1647
- 贡献
- 1337
|
0 a& Z- M$ ~: n3 E& T学习目的:做一个分页显示
1 P7 D6 p. @% F+ {5 `' y) T' f关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num8 N( P- q: d0 ^ d/ x
& B9 y4 E( q9 {$ m: _
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。9 M s! u/ U. d# a6 @6 n* `
& [ r% u) N2 H( X, X$execc="select count(*) from tablename ";( Y& E6 H2 i ~3 ?, i2 q
$resultc=mysql_query($execc);
# b6 B) I) \6 I0 g$rsc=mysql_fetch_array($resultc);- i* b$ K$ C, ]* l; h9 Q
$num=$rsc[0];
. R" ^0 f- T! @, Z Z5 Q
4 X$ ^) [% `: r. r* M这样可以得到记录总数
4 D1 y* @. u& a" [5 v9 ^ceil($num/10))如果一页10记录的话,这个就是总的页数1 Q6 r3 ^# n) c
所以可以这么写- t7 D% l& J5 B c
if(empty($_GET['page']))/ D+ o' F6 n) [& S8 s# W
{- d V) F/ d9 K5 l6 M; S( p, g
$page=0;; O) r! d0 K) ^) K. ~3 b5 @
}* P2 M2 V& P2 s$ y' z& C/ `
else
. G" e7 V, v6 _* Q{
% d" ^6 G( H$ l+ {5 ^" S0 o6 g. U `' L$page=$_GET['page'];0 K: k$ g8 s& R5 _3 \
if($page<0)$page=0;: K- O) M5 b: R8 R. H+ w3 k
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-10 m. U7 {/ k9 M* s+ ~" M0 [
}
7 S) d; N( m D5 y. ~% K
: H# z3 i! B2 |3 i2 k这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";2 Q3 x' Q: a3 g6 Z9 c
//一页是10记录的
1 N7 [. T: x* C- T+ |$ ~& U最后我们需要做的就是几个连接:8 }2 t- p; D8 I5 x0 R" u
<a href="xxx.php?page=0">FirstPage</a>
0 [; g! U& ~9 C# y- v: m2 W; }<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> + l L$ }& @5 u3 S% _1 J1 l
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
* B; V* {# Q. v& @( g<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>/ |' @7 W0 j1 A& R* L
0 M7 n; y9 T( C7 b" i
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|