PHP超强分页种
PHP超强分页类
/** * filename: ext_page.class.php * @package:phpbean * @author :feifengxlq<feifengxlq><http:></http:> * @copyright :Copyright 2006 feifengxlq * @license:version 2.0 * @create:2006-5-31 * @modify:2006-6-1 * @modify:feifengxlq 2006-11-4 * description:超强分页类,四种分页模式,默认采用类似baidu,google的分页风格。 * 2.0增加功能:支持自定义风格,自定义样式,同时支持PHP4和PHP5, * to see detail,please visit http://www.phpobject.net/blog/read.php? * example: * 模式四种分页模式: require_once('../libs/classes/page.class.php'); $page=new page(array('total'=>1000,'perpage'=>20)); echo 'mode:1<br>'.$page->show(); echo '<hr>mode:2<br>'.$page->show(2); echo '<hr>mode:3<br>'.$page->show(3); echo '<hr>mode:4<br>'.$page->show(4); 开启AJAX: $ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test')); echo 'mode:1<br>'.$ajaxpage->show(); 采用继承自定义分页显示模式: demo:http://www.phpobject.net/blog */ class page { /** * config ,public */ var $page_name="PB_page";//page标签,用来控制url页。比如说xxx.php?PB_page=2中的PB_page var $next_page='>';//下一页 var $pre_page='>';//下一分页条 var $format_left=' '; var $format_right=' '; var $is_ajax=false;//是否支持AJAX分页模式 /** * private * */ var $pagebarnum=10;//控制记录条的个数。 var $totalpage=0;//总页数 var $ajax_action_name='';//AJAX动作名 var $nowindex=1;//当前页 var $url="";//url地址头 var $offset=0; /** * constructor构造函数 * * @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax']... */ function page($array) { if(is_array($array)){ if(!array_key_exists('total',$array))$this->error(__FUNCTION__,'need a param of total'); $total=intval($array['total']); $perpage=(array_key_exists('perpage',$array))?intval($array['perpage']):10; $nowindex=(array_key_exists('nowindex',$array))?intval($array['nowindex']):''; $url=(array_key_exists('url',$array))?$array['url']:''; }else{ $total=$array; $perpage=10; $nowindex=''; $url=''; } if((!is_int($total))||($totalerror(__FUNCTION__,$total.' is not a positive integer!'); if((!is_int($perpage))||($perpageerror(__FUNCTION__,$perpage.' is not a positive integer!'); if(!empty($array['page_name']))$this->set('page_name',$array['page_name']);//设置pagename $this->_set_nowindex($nowindex);//设置当前页 $this->_set_url($url);//设置链接地址 $this->totalpage=ceil($total/$perpage); $this->offset=($this->nowindex-1)*$perpage; if(!empty($array['ajax']))$this->open_ajax($array['ajax']);//打开AJAX模式 } /** * 设定类中指定变量名的值,如果改变量不属于这个类,将throw一个exception * * @param string $var * @param string $value */ function set($var,$value) { if(in_array($var,get_object_vars($this))) $this->$var=$value; else { $this->error(__FUNCTION__,$var." does not belong to PB_Page!"); } } /** * 打开倒AJAX模式 * * @param string $action 默认ajax触发的动作。 */ function open_ajax($action) { $this->is_ajax=true; $this->ajax_action_name=$action; } /** * 获取显示"下一页"的代码 * * @param string $style * @return string */ function next_page($style='') { if($this->nowindextotalpage){ return $this->_get_link($this->_get_url($this->nowindex+1),$this->next_page,$style); } return '<span class="'.$style.'">'.$this->next_page.'</span>'; } /** * 获取显示"上一页"的代码 * * @param string $style * @return string */ function pre_page($style='') { if($this->nowindex>1){ return $this->_get_link($this->_get_url($this->nowindex-1),$this->pre_page,$style); } return '<a class="'.$style.'">'.$this->pre_page.'</a>'; } /** * 获取显示"首页"的代码 * * @return string */ function first_page($style='') { if($this->nowindex==1){ return '<a class="'.$style.'">'.$this->first_page.'</a>'; } return $this->_get_link($this->_get_url(1),$this->first_page,$style); } /** * 获取显示"尾页"的代码 * * @return string */ function last_page($style='') { if($this->nowindex==$this->totalpage){ return '<span class="'.$style.'">'.$this->last_page.'</span>'; } return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style); } function nowbar($style='',$nowindex_style='curr') { $plus=ceil($this->pagebarnum/2); if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex); $begin=$this->nowindex-$plus+1; $begin=($begin>=1)?$begin:1; $return=''; for($i=$begin;$ipagebarnum;$i++) { if($itotalpage){ if($i!=$this->nowindex) $return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style)); else $return.=$this->_get_text('<span class="'.$nowindex_style.'">'.$i.'</span>'); }else{ break; } $return.="\n"; } unset($begin); return $return; } /** * 获取显示跳转按钮的代码 * * @return string */ function select() { $return='<select name="PB_Page_Select">'; for($i=1;$itotalpage;$i++) { if($i==$this->nowindex){ $return.='<option value="'.$i.'" selected>'.$i.'</option>'; }else{ $return.='<option value="'.$i.'">'.$i.'</option>'; } } unset($i); $return.='</select>'; return $return; } /** * 获取mysql 语句中limit需要的值 * * @return string */ function offset() { return $this->offset; } /** * 控制分页显示风格(你可以增加相应的风格) * * @param int $mode * @return string */ function show($mode=1) { switch ($mode) { case '1': $this->next_page='下一页'; $this->pre_page='上一页'; return $this->pre_page().$this->nowbar().$this->next_page(); break; case '2': $this->next_page='下一页'; $this->pre_page='上一页'; $this->first_page='首页'; $this->last_page='尾页'; return $this->first_page().$this->pre_page().'[第'.$this->nowindex.'页]'.$this->next_page().$this->last_page().'第'.$this->select().'页'; break; case '3': $this->next_page='下一页'; $this->pre_page='上一页'; $this->first_page='首页'; $this->last_page='尾页'; return $this->first_page().$this->pre_page().$this->next_page().$this->last_page(); break; case '4': $this->next_page='下一页'; $this->pre_page='上一页'; return $this->pre_page().$this->nowbar().$this->next_page(); break; case '5': return $this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this->next_bar(); break; } } /*----------------private function (私有方法)-----------------------*/ /** * 设置url头地址 * @param: String $url * @return boolean */ function _set_url($url="") { if(!empty($url)){ //手动设置 $this->url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."="; }else{ //自动获取 if(empty($_SERVER['QUERY_STRING'])){ //不存在QUERY_STRING时 $this->url=$_SERVER['REQUEST_URI']."?".$this->page_name."="; }else{ // if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'=')){ //地址存在页面参数 $this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI']); $last=$this->url[strlen($this->url)-1]; if($last=='?'||$last=='&'){ $this->url.=$this->page_name."="; }else{ $this->url.='&'.$this->page_name."="; } }else{ // $this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'='; }//end if }//end if }//end if } /** * 设置当前页面 * */ function _set_nowindex($nowindex) { if(empty($nowindex)){ //系统获取 if(isset($_GET[$this->page_name])){ $this->nowindex=intval($_GET[$this->page_name]); } }else{ //手动设置 $this->nowindex=intval($nowindex); } } /** * 为指定的页面返回地址值 * * @param int $pageno * @return string $url */ function _get_url($pageno=1) { return $this->url.$pageno; } /** * 获取分页显示文字,比如说默认情况下_get_text('<a href="">1</a>')将返回[<a href="">1</a>] * * @param String $str * @return string $url */ function _get_text($str) { return $this->format_left.$str.$this->format_right; } /** * 获取链接地址 */ function _get_link($url,$text,$style=''){ $style=(empty($style))?'':'class="'.$style.'"'; if($this->is_ajax){ //如果是使用AJAX模式 return '<a href="javascript:'.%24this->ajax_action_name.'(%5C''.%24url.'%5C')">'.$text.'</a>'; }else{ return '<a href="'.%24url.'">'.$text.'</a>'; } } /** * 出错处理方式 */ function error($function,$errormsg) { die('Error in file <b>'.__FILE__.'</b> ,Function <b>'.$function.'()</b> :'.$errormsg); } } function actionTiaozhuan(){ $pb_page = $_GET['PB_page']; if(!isset($pb_page)){ $pb_page = 1; } $pagesize = 10; $offset = $pagesize*($pb_page-1); // $model=User::model()->findAll('1=1 oder by id limit :offset,:perpage',array(':offset'=>$offset,':perpage'=>$pagesize)); $model=User::model()->findAllBySql('select t.* from tbl_user t order by t.id limit :offset , :perpage ',array(':offset'=>$offset,':perpage'=>$pagesize)); $count = User::model()->count('1=1',array()); $rs = array( 'model' =>$model, 'count' =>$count ); //print_r($model); $this->render("fenye",$rs); } ?></feifengxlq>
?
?
初始化范例
?
<?php $pb_page=$_GET['PB_page']; if(!isset($pb_page)){ $pb_page=1; } $pagesize=10; $offset=$pagesize*($pb_page-1); $sql="select * from seotable where riqi<='$showtime' and zhuangtai=1 order by id desc limit $offset,$pagesize"; ?>
?
?
?

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

Die Verwendung von return in der C-Sprache ist: 1. Für Funktionen, deren Rückgabewerttyp ungültig ist, können Sie die Rückgabeanweisung verwenden, um die Ausführung der Funktion vorzeitig zu beenden. 2. Für Funktionen, deren Rückgabewerttyp nicht ungültig ist, ist die Funktion von Die Return-Anweisung dient dazu, die Ausführung der Funktion zu beenden. 3. Beenden Sie die Ausführung der Funktion vorzeitig wenn die Funktion keinen Wert zurückgibt.

Quellcode: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Ausgabe Die Ausgabe des obigen Codes kann einfach zu dem Schluss kommen: return wird ausgeführt, bevor wir uns schließlich ansehen, was auf der Bytecode-Ebene passiert. Im Folgenden wird ein Teil des Bytecodes der Methode case1 abgefangen und mit dem Quellcode verglichen, um die Bedeutung jeder Anweisung darin zu kommentieren

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Implementieren von Daten-Paging und Anzeigeoptimierung in Vue-Projekten: Wenn eine Seite eine große Datenmenge anzeigen muss, muss in der Regel eine Daten-Paging- und Anzeigeoptimierung durchgeführt werden, um die Benutzererfahrung zu verbessern Implementieren Sie Daten-Paging und Anzeigeoptimierung und stellen Sie spezifische Codebeispiele bereit. 1. Daten-Paging Unter Daten-Paging versteht man die Aufteilung einer großen Datenmenge auf mehrere Seiten nach bestimmten Regeln und deren Anzeige auf der Seite. Mit den folgenden Schritten können Sie Daten-Paging in einem Vue-Projekt implementieren: Definieren Sie die Datenquelle. Definieren Sie zunächst eine Datenquelle, die alle Daten enthält.

Vue3.2-Setup-Syntaxzucker ist ein Syntaxzucker zur Kompilierungszeit, der die kombinierte API in einer einzelnen Dateikomponente (SFC) verwendet, um das umständliche Setup in Vue3.0 zu lösen. Die durch den Import eingeführten deklarierten Variablen, Funktionen und Inhalte werden bereitgestellt Rückkehr, damit sie in Vue3.0 verwendet werden können. 1. Es besteht keine Notwendigkeit, deklarierte Variablen, Funktionen und Inhalte zurückzugeben, die durch Import während der Verwendung eingeführt wurden }from'./utils'//variable constmsg='Hello !'//function func
