获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天

+ ^* 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之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: