文章内容太长,在php中如何做文章内容分页!
请各位高手给予指点!
谢谢
请各位高手给予指点!
谢谢
解决方案 »
- PHP 调用新浪滚动新闻
- 咨询PHP如何做到不用每次打开数据库问题?
- 能不能用php模拟登陆ASP网站的页面呢?
- 你们的金额字段设计的是什么数据类型呀,为何我的金额字段合计出来有很多小数位呀?Please help me!
- 一个循环,何取不到值,很奇怪,请您看看这段代码
- 这句话是什么意思啊?define('CURRSCRIPT', 'logging');
- 求一个sql语句!
- 谁对php的socket比较熟悉啊.php怎么调用socket啊
- 各位高手请看看了。。错误信息是:Parse error: parse error。。高分请救
- 请教关于PHP中作用于cell.ocx控件的问题。
- 相对地址和绝对地址的正则问题
- php和Java的区别
再用正则把内容切割一下。
你從數據庫中讀出所有信息
你固定好顯示的寬和高..用css控制顯示還是隱藏.在用js來做一個分頁假象...一種思路...
global $maxpage;
$multipage = '';
$seo_prefix=$this->setting['seo_prefix'];
$seo_suffix=$this->setting['seo_suffix'];
$mpurl = $seo_prefix.$mpurl.'-';
$realpages = 1;
if($num > $perpage) {
$offset = 2;
$realpages = @ceil($num / $perpage);
$pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
$from = $curpage - $offset;
$to = $from + $page - 1;
if($from < 1) {
$to = $curpage + 1 - $from;
$from = 1;
if($to - $from < $page) {
$to = $page;
}
} elseif($to > $pages) {
$from = $pages - $page + 1;
$to = $pages;
}
}
$multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="'.$mpurl.'1"'.$seo_suffix.' >1 ...</a>' : '').
($curpage > 1 && !$simple ? '<a href="'.$mpurl.($curpage - 1).$seo_suffix.'" >‹‹</a>' : '');
for($i = $from; $i <= $to; $i++) {
$multipage .= $i == $curpage ? '<span class="gray">'.$i.'</span>' :'<a href="'.$mpurl.$i.$seo_suffix.'" >'.$i.'</a>';
}
$multipage .= ($curpage < $pages && !$simple ? '<a href="'.$mpurl.($curpage + 1).$seo_suffix.'" >››</a>' : '').
($to < $pages ? '<a href="'.$mpurl.$pages.$seo_suffix.'" >... '.$realpages.'</a>' : '').
(!$simple && $pages > $page && !$ajaxtarget ? '<kbd><input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {window.location=\''.$mpurl.'\'+this.value+\''.$seo_suffix.'\'; return false;}" /></kbd>' : ''); $multipage = $multipage ? (!$simple ? '<span class="gray"> '.$this->view->lang['commonTotal'].$num.$this->view->lang['commonTotalNum'].' </span>' : '').$multipage : '';
}
$maxpage = $realpages;
return $multipage;
}
function splitlist($HALT,$LRLIST,$ECHOCNT,$paper,$table,$where,$page_id,$userid){
global $splitstr,$sumcnt;
if($paper=="" || $sumcnt==""){
$query = "select count(*) as num from $table $where";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$sumcnt=$row["num"];
if($sumcnt==0){
nerror("该版内还没有选择发布新闻 !");
}
$paper=1;
}
$sumpaper=($sumcnt-$sumcnt%$ECHOCNT)/$ECHOCNT;
if(($sumcnt%$ECHOCNT)!=0) $sumpaper+=1;
if($sumpaper==1 && $HALT==0) return($where);
$enwhere=base64_encode(base64_encode($where));
if(($LRLIST*2+1) < $sumpaper){
if(($paper-$LRLIST) < 2){
$tract=1;
$sub=$LRLIST*2+1;
}else if(($paper+$LRLIST) >= $sumpaper){
$tract=$sumpaper-($LRLIST*2);
$sub=$sumpaper;
}else{
$tract=$paper-$LRLIST;
$sub=$paper+$LRLIST;
}
}else{
$tract=1;
$sub=$sumpaper;
}
$uppaper=$paper-1;
$downpaper=$paper+1;
$startcnt=($paper-1)*$ECHOCNT;
$where.=" limit ${ startcnt },${ ECHOCNT }";
if($tract > 1) { $splitstr="【 << "; }
else $splitstr="【 << ";
for($i=$tract;$i<=$sub;$i++){
if ($i!=$paper) $splitstr.="".$i." ";
else $splitstr.="".$i." ";
}
if ($sub!=$sumpaper) $splitstr.=">> 】";
else $splitstr.=">> 】";
return($where);
}
/*
#### 检索分页函式 ####
Int $HALT - 检索结果仅分1页时是否(1/0)显示页码条
Int $LRLIST - (页码条显示页码数-1)/2
Int $ECHOCNT - 检索时每页显示记录的数量
Int $paper - 页数,预提取:$paper=$HTTP_GET_VARS[paper];
Varchar $table - 数据表名,预附值:$table="db.table";
Varchar $where - 检索条件,预附值:$where="where field='value'";
Varchar $enwhere - 将原$where进行两次base64_encode()编码后以GET的方式提交
Varchar $splitstr - 页码条输出字串,执行函式后在相应的位置执行 echo $splitstr;
函式调用前需获取变量 -
$paper=$HTTP_GET_VARS[paper];
$sumcnt=$HTTP_GET_VARS[sumcnt];
$enwhere=$HTTP_GET_VARS[enwhere];
Return (Varchar $where) - 分页后检索语句的检索条件
注意:本函式需调用出错处理函式 nerror($error);
*/