  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14249
- 金币
- 2415
- 威望
- 1647
- 贡献
- 1363
|
+ ^* r# \: t# [0 h$ A
学习目的:做一个分页显示
- P; B" ~9 J7 I关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num( u& s& D3 H9 L: N, B. t6 I
8 {3 v- b, y4 R9 ?- v, p/ t
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
% ^* D; E' N% Y e8 V* F* E& {% U$ e: q
$execc="select count(*) from tablename ";& W! `& V, C2 L* L' J( B
$resultc=mysql_query($execc);4 Y+ ~% E$ N: d" p$ c
$rsc=mysql_fetch_array($resultc);' H# e: D6 }; U
$num=$rsc[0];2 B5 _5 P/ E& S! V7 c! g* w$ W
" p# }- R+ L2 l/ E3 v. H: }
这样可以得到记录总数, Z' {" f- u# E" {
ceil($num/10))如果一页10记录的话,这个就是总的页数; \; Q4 `; j& M; \& _
所以可以这么写$ ?+ ~( z- O5 [0 ~; Q, D' }
if(empty($_GET['page']))0 v6 z" h- P5 H9 T0 }
{
5 {) r" a1 P$ T8 r( l4 j) h1 L/ m$page=0;
1 c9 E) a/ u7 ?}
4 L1 q4 D L1 h/ E( A- {else* D2 e; U* X! v6 |
{9 a$ G) c7 N% i$ ?! x4 m
$page=$_GET['page'];
! F; t. K! V( n! Z3 f/ A+ Mif($page<0)$page=0;
; \8 X5 f$ Z! C0 C+ C4 qif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1+ I9 n' M) `$ x [# W
}
$ m% b% o" \/ t7 O; Q3 E; [
" Q# S* u) i- ^) m& |: N, m这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";1 c5 R! D ]9 d8 b- U0 J
//一页是10记录的
. H$ }9 g2 a: k, k( W8 Q0 {, \最后我们需要做的就是几个连接:
/ v- z. P7 A5 O# }<a href="xxx.php?page=0">FirstPage</a>
% G H6 _2 \) N8 l. L. A<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
/ u! F$ |6 L: `8 S$ M<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
3 p& l, T1 W, k<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>1 }4 S' x; z. {4 H8 B( o# `, v
+ r" a# l5 e6 U( N/ ^
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|