分页|终结者
/*
------------------------------------------------------------------------------------
类名:Lwgpagenum
说明:PHP+MySQL分页类
作者:龙卫国
网络user:lwg888
邮箱:lwg888@163.com
使用、修改、传播请保留作者信息
------------------------------------------------------------------------------------
*/
require_once(dirname(__FILE__)."/Lwgdb.inc.php");
//Lwgdb.inc.php是数据库连接与sql语句执行类
class Lwgpageturn {
//----------可以设置值的变量----------------------------------------
var $maxnum;//每页显示数
var $maxnum_max_size=100; //每页最多显示数,用来规定$maxnum不能超过$maxnum_max_size
var $sql;//sql语句
var $navchar=array('[|]','[>>|]','[>]');
//导航条的显示字符,值可以自定义,如一个img标签
//$navchar[0]表示第一页,$navchar[1]表示前一页,$navchar[2]表示后一页,$navchar[3]表示最后页,$navchar[4]表示前n页,$navchar[5]表示后n页
var $key;//如果一个页面中有多个分页时作为区别标记
var $debug=true;//是否显示调试信息
//----------用来获取值的变量---------------------------------------
var $totalnum;//总记录数
var $totalpage;//总页数
var $startnum;//本页的第一条在总数中的序数
var $endnum;//本页的最后一条在总数中的序数
var $pagenum;//本页在总页数中的序数
var $field;//结果记录的集合
var $id;//每条记录的序号
var $linkhead;//链接指定的url及要传递的相关参数
var $err;//记录最后一条错误信息
//构造函数。
//参数$maxnum用来指定每页显示多少条记录,如果不指定$maxnum,表示全部显示而不用分页
//如果同一个页面中有两个以上的分页,参数$key作为区分标记,否则不用指定
//使用方法:
// $obj=new Lwgpagenum('10');
//或: $obj=new Lwgpagenum();
// $obj->maxnum="10";
// $obj->key="1";
function Lwgpageturn($maxnum="",$maxnum_max_size='',$key=""){
$this->maxnum=$maxnum;
if ($maxnum_max_size!="")$this->maxnum_max_size=$maxnum_max_size;
$this->key=$key;
}
//通过run方法运行sql并取得相关信息
//$sql参数为有效的sql语句。可以通过$obj->sql=""来指定
//$db参数为数据库连接ID
//使用方法:
//$sql="select * from table";
//$db=mysql_connect('host','user','pass');
//$obj->run($sql,$db);
//或:
//$obj->sql="select * from table";
//$obj->run();
function run($sql='',$db=''){
if ($sql!="")$this->sql=$sql;
if ($this->sql=="") return $this->output("错误:未给出sql查询语句!");
if ($this->maxnummaxnum_max_sizeoutput("错误:maxnum、maxnum_max_size都不能小于0!");
if ($db=="")$db=new Lwgdb();
//如果没有指定参数$db,则用Lwgdb类与数据库建立连接
if (empty($this->maxnum)){
//如果初始maxnum为空,则显示全部记录而不用分页
$result = $db->query($this->sql);//执行sql语句
$this->totalnum = mysql_num_rows($result);//取得总记录数
if ($this->maxnum_max_size>0 && $this->totalnum>$this->maxnum_max_size)return $this->output("错误:记录数太多,请使用分页!");
$this->startnum=0;//第一条记录数为0
$this->endnum=$this->totalnum;//最后一条记录数与总记录数相同
}
else {
$ifpost=false;
//是否有$_POST变量,如果有的话,则在翻页时只传递其值,其它的一律省略
if (sizeof($_POST)>0){
$formlink = "";
$ifpost=true;
foreach ($_POST as $key => $value) {
//循环分析出$_POST变量的键值
if (!empty($value)) $formlink .=$key."=".rawurlencode($value)."&";
}
$querystring=$formlink;//将$_POST变量的键值作为翻页时传递的参数
}
else {
//如果没有$_POST变量,则将$_GET变量分析后作为翻页时传递的参数
$qs=explode("totalnum".$this->key,$_SERVER['QUERY_STRING']);
if ($qs[0]!="")$querystring=(substr($qs[0],-1)=="&")?$qs[0]:$qs[0]."&";
//扔掉totalnum及其以后的参数,因为要付新的值
}
if (isset($_GET["totalnum".$this->key]) && $_GET["totalnum".$this->key]>0 && !$ifpost)$this->totalnum = sprintf('%d',$_GET["totalnum".$this->key]);
//如果有$_POST变量,则不再传递旧的totalnum参数
//否则如果在$_GET中有totalnum,则直接传递它,而不用重新计算
else {
$all_result = $db->query($sql);
$this->totalnum = mysql_num_rows($all_result);
//如果$totalnum }
if (isset($_GET["maxnum".$this->key]) && $_GET["maxnum".$this->key]>0)$this->maxnum = sprintf('%d',$_GET["maxnum".$this->key]);
//如果通过get接收到$maxnum,则使用之,这样便能在客户端指定要显示的记录数
if ($this->maxnum_max_size>0 && $this->maxnum>$this->maxnum_max_size)$this->maxnum=$this->maxnum_max_size;
//如果$maxnum
if ($this->maxnum==$this->totalnum){
//虽然前面说maxnum的初始值为空时也是全部显示,但没有任何统计与导航, 适用于如首页的显示前n条记录
$this->totalpage=1;
$this->startnum=0;
$this->endnum=$this->totalnum;
$result=(empty($all_result))?$db->query($sql):$all_result;
//$result是用来显示记录的数据库查询id;
//如果前面计算总数时已有id,则直接使用前面的
}
else {
if (!empty($all_result))mysql_free_result($all_result);
$this->totalpage=ceil($this->totalnum/$this->maxnum);
$this->pagenum =(isset($_GET["pagenum".$this->key]) && $_GET["pagenum".$this->key]>0 && !$ifpost)?sprintf('%d',$_GET["pagenum".$this->key]):1;
//如果没有$_POST变量,并且$_GET变量中有发pagenum参数,则使用之,否则,表示页数的pagenum为1
if ($this->pagenum>$this->totalpage)$this->pagenum=$this->totalpage;
$this->startnum = max(($this->pagenum-1) * $this->maxnum,0);
$this->endnum=min($this->startnum+$this->maxnum,$this->totalnum);
//本页显示数为本页的最后一条在总数中的序数减去本页的第一条在总数中的序数
$limitstart=0;
// 如果sql语句中有limit,则重新设置limit的参数
//重设limit的第一个参数为 $limitstart=0
if (eregi("limit (-?[0-9]+) *,? *(-?[0-9]*)",$sql,$regs)){
if (!empty($regs[2])) $limitstart=$regs[1];
//$regs[1]为limit的第一个参数;$regs[2]为limit的第二个参数
//如果存在第二个参数,则让$limitstart=第一个参数
//此时第二个参数已没有用,因为在计算总数时已发挥作用
$sql=eregi_replace("limit (-?[0-9]+) *,? *(-?[0-9]*)","",$sql);
//去掉limit,因为后面要新建limit
}
$limitstart+=$this->startnum;
$query_limit = sprintf("%s LIMIT %d, %d", $sql, $limitstart,$this->maxnum);
//重设limit,使结果为本页需要显示的记录
$result = $db->query($query_limit);
}
$querystring.="totalnum".$this->key."=".$this->totalnum;
if (isset($_GET["maxnum".$this->key]))$querystring.="&maxnum".$this->key."=".$this->maxnum;
$this->linkhead=$_SERVER['PHP_SELF']."?".$querystring;
//将需要传递的参数加上totalnum和maxnum,然后加在url后
}
$i=0;
while($myrow = mysql_fetch_array($result)){
$this->field[$i]=$myrow;
//用两维数组返回要显示的记录
$this->id[$i]=$this->startnum+$i+1;
//每条记录的序号
$i++;
}
mysql_free_result($result);
}
//显示如"共14页27条"
//使用方法:echo $obj->total()
function total(){
if ($this->maxnum=="")return;
return "共".$this->totalpage."页".$this->totalnum."条";
}
//显示如"本页从第9条到第10条"
//使用方法:echo $obj->fromto()
function fromto(){
if ($this->maxnum=="")return;
$startnum=$this->startnum+1;
if ($this->totalnum==0)$startnum=0;
return "本页从第".$startnum."条到第".$this->endnum."条";
}
//navbar方法显示页数导航条
//$num_size表示多少个导航数字,如$num_size=5则显示" 1 2 3 4 5 "
//$num_style为数字导航条的风格,
//当$num_style的值为1时将数字分组,显示如"前5页 前1页 1 2 3 4 5 后一页 后5页";
//当$num_style的值为非1时,显示如" 1 2 3 4 5 …";
//$nolink_show没有链接的导航字符是否显示,true显示,false不显示
//$nolink_color没有链接的导航字符显示的颜色
//使用方法:echo $obj->navbar(10,2,false,"#ffff00")
function navbar($num_size=0,$num_style=1,$nolink_show=false,$nolink_color="#ff0000"){
if ($this->totalpage
if ($num_size>0){
if ($num_style==1){
$thisunit=ceil($this->pagenum/$num_size);//取得本页所有的组
$preunit=($thisunit>1)?($thisunit-1):"";//取得上页所有的组
$nextunit=($thisunit
$startpage=($thisunit-1)*$num_size+1;//取得本组的开始页
$endpage=min($thisunit*$num_size,$this->totalpage);//取得本组的最后页
if ($preunit!=""){
$str_preunit=" linkhead."&pagenum".$this->key."=".(($thisunit-2)*$num_size+1)."\" title=\"前".$num_size."页\">".$this->navchar[4]." ";
}
if ($nextunit!=""){
$str_nextunit=" linkhead."&pagenum".$this->key."=".($thisunit*$num_size+1)."\" title=\"后".$num_size."页\">".$this->navchar[5]."";
}
}
else {
$tmpnum=ceil($num_size/2);
$startpage=max(min($this->pagenum-$tmpnum,$this->totalpage-$num_size+1),1);
$endpage=min($startpage+$num_size-1,$this->totalpage);
if ($startpage>1)$str_frontell=" … ";
if ($endpagetotalpage)$str_backell=" … ";
}
$str_num="";
for ($i=$startpage;$i if ($i==$this->pagenum)$str_num.=" ".$i." ";
else $str_num.= " linkhead."&pagenum".$this->key."=".$i."\" title=\"第".$i."页\">".$i." ";
}
}
if ($this->pagenum > 1){
$str_first=" linkhead."&pagenum".$this->key."=1\" title=\"第一页\">".$this->navchar[0]." ";
$str_pre=" linkhead."&pagenum".$this->key."=".($this->pagenum-1)."\" title=\"前一页\">".$this->navchar[1]." ";
}
else if ($nolink_show){
$str_first=" ".$this->navchar[0]." ";
$str_pre=" ".$this->navchar[1]." ";
}
if ($this->pagenumtotalpage){
$str_next= " linkhead."&pagenum".$this->key."=".($this->pagenum+1)."\" title=\"后一页\">".$this->navchar[2]." ";
$str_last= " linkhead."&pagenum".$this->key."=".$this->totalpage."\" title=\"最后页\">".$this->navchar[3]." ";
}
else if ($nolink_show){
$str_next=" ".$this->navchar[2]." ";
$str_last=" ".$this->navchar[3]." ";
}
return $str_first.$str_preunit.$str_pre.$str_frontell.$str_num.$str_backell.$str_next.$str_nextunit.$str_last;
}
//用下拉列表显示如"到第n页共m页"
//使用方法:echo $obj->pagejump()
function pagejump(){
if ($this->totalpage
$options=array();
for ($i=1;$itotalpage;$i++)$options[$i]=$i;
return "到第".$this->droplist("pagenum".$this->key,$options)."页/共".$this->totalpage."页";
}
//用下拉列表显示如"每页显示n条 "
//使用方法:echo $obj->maxnum()
function maxnum(){
if ($this->maxnum=="")return;
$options=array('1'=>'1','2'=>'2','3'=>'3','4'=>'4','6'=>'6','8'=>'8','9'=>'9','10'=>'10','20'=>'20','30'=>'30','50'=>'50','100'=>'100','全部'=>$this->totalnum);
$str="";
return "每页显示".$this->droplist("maxnum".$this->key,$options)."条";
}
//droplist()用来生成下拉选单
function droplist($name,$options,$class=""){
$write="";
$write.=" if ($class!="")$write.="class='".$class."' ";
$write.=">";
$tmplinkhead=eregi_replace("&maxnum".$this->key."=[0-9]*","",$this->linkhead);
$preval=0;
while ( list( $key, $val ) = each( $options ) ) {
if ($name=="maxnum".$this->key){
if ($val!=$this->totalnum){
$pagenum=ceil($this->pagenum*$this->maxnum/$val);
while (($pagenum-1)*$val>$this->startnum)$pagenum-=1;
//由于每页显示记录数改变了,所以要重新计算$pagenum
$linkhead=$tmplinkhead."&pagenum".$this->key."=".max($pagenum,1);
}
else $linkhead=$this->linkhead;
if ($this->maxnum_max_size>0 && $this->totalnum>$this->maxnum_max_size){
if ($val>=$this->maxnum_max_size){
$write.="";
//创建值为$this->maxnum的选单
break;
}
//如果总数大于$this->maxnum_max_size,则不显示"all"以及大于$this->maxnum_max_size的选项
}
else if ($prevalmaxnum && $val>$this->maxnum)$write.="";
//当$maxnum的值不在选单中时则创建它
$write.=" if ($this->maxnum==$val)$write.=" selected";
$preval=$val;
}
else if ($name=="pagenum".$this->key){
$write.=" if ($this->pagenum==$val)$write.=" selected";
}
$write.=">".$key."";
}
$write.="";
return $write;
}
//输出错误信息
function output($msg){
if ($msg!="")$this->err=$msg;
if ($this->debug)echo "";
return false;
}
}
/*---------使用方法----------------------------------------------
$sql="……";
$obj=new lwg_pageturn(20);
$obj->run($sql);
//下面单列显示记录示例
for ($i=0;$iendnum-$obj->startnum;$++){
echo $obj->id[$i];//显示序号
echo $obj->field[$i]['name']."
";//显示字段名为name的第$i条记录
}
//下面多列显示记录示例
echo "
"; echo $obj->id[$i];//显示序号 echo $obj->field[$i]['name']." ";//显示字段名为name的第$i条记录 echo " | ";
-----------------------------------------------------------------
*/
?>

“你的组织要求你更改PIN消息”将显示在登录屏幕上。当在使用基于组织的帐户设置的电脑上达到PIN过期限制时,就会发生这种情况,在该电脑上,他们可以控制个人设备。但是,如果您使用个人帐户设置了Windows,则理想情况下不应显示错误消息。虽然情况并非总是如此。大多数遇到错误的用户使用个人帐户报告。为什么我的组织要求我在Windows11上更改我的PIN?可能是您的帐户与组织相关联,您的主要方法应该是验证这一点。联系域管理员会有所帮助!此外,配置错误的本地策略设置或不正确的注册表项也可能导致错误。即

Windows11将清新优雅的设计带到了最前沿;现代界面允许您个性化和更改最精细的细节,例如窗口边框。在本指南中,我们将讨论分步说明,以帮助您在Windows操作系统中创建反映您的风格的环境。如何更改窗口边框设置?按+打开“设置”应用。WindowsI转到个性化,然后单击颜色设置。颜色更改窗口边框设置窗口11“宽度=”643“高度=”500“>找到在标题栏和窗口边框上显示强调色选项,然后切换它旁边的开关。若要在“开始”菜单和任务栏上显示主题色,请打开“在开始”菜单和任务栏上显示主题

默认情况下,Windows11上的标题栏颜色取决于您选择的深色/浅色主题。但是,您可以将其更改为所需的任何颜色。在本指南中,我们将讨论三种方法的分步说明,以更改它并个性化您的桌面体验,使其具有视觉吸引力。是否可以更改活动和非活动窗口的标题栏颜色?是的,您可以使用“设置”应用更改活动窗口的标题栏颜色,也可以使用注册表编辑器更改非活动窗口的标题栏颜色。若要了解这些步骤,请转到下一部分。如何在Windows11中更改标题栏的颜色?1.使用“设置”应用按+打开设置窗口。WindowsI前往“个性化”,然

您是否在Windows安装程序页面上看到“出现问题”以及“OOBELANGUAGE”语句?Windows的安装有时会因此类错误而停止。OOBE表示开箱即用的体验。正如错误提示所表示的那样,这是与OOBE语言选择相关的问题。没有什么可担心的,你可以通过OOBE屏幕本身的漂亮注册表编辑来解决这个问题。快速修复–1.单击OOBE应用底部的“重试”按钮。这将继续进行该过程,而不会再打嗝。2.使用电源按钮强制关闭系统。系统重新启动后,OOBE应继续。3.断开系统与互联网的连接。在脱机模式下完成OOBE的所

任务栏缩略图可能很有趣,但它们也可能分散注意力或烦人。考虑到您将鼠标悬停在该区域的频率,您可能无意中关闭了重要窗口几次。另一个缺点是它使用更多的系统资源,因此,如果您一直在寻找一种提高资源效率的方法,我们将向您展示如何禁用它。不过,如果您的硬件规格可以处理它并且您喜欢预览版,则可以启用它。如何在Windows11中启用任务栏缩略图预览?1.使用“设置”应用点击键并单击设置。Windows单击系统,然后选择关于。点击高级系统设置。导航到“高级”选项卡,然后选择“性能”下的“设置”。在“视觉效果”选

在Windows11上的显示缩放方面,我们都有不同的偏好。有些人喜欢大图标,有些人喜欢小图标。但是,我们都同意拥有正确的缩放比例很重要。字体缩放不良或图像过度缩放可能是工作时真正的生产力杀手,因此您需要知道如何对其进行自定义以充分利用系统功能。自定义缩放的优点:对于难以阅读屏幕上的文本的人来说,这是一个有用的功能。它可以帮助您一次在屏幕上查看更多内容。您可以创建仅适用于某些监视器和应用程序的自定义扩展配置文件。可以帮助提高低端硬件的性能。它使您可以更好地控制屏幕上的内容。如何在Windows11

屏幕亮度是使用现代计算设备不可或缺的一部分,尤其是当您长时间注视屏幕时。它可以帮助您减轻眼睛疲劳,提高易读性,并轻松有效地查看内容。但是,根据您的设置,有时很难管理亮度,尤其是在具有新UI更改的Windows11上。如果您在调整亮度时遇到问题,以下是在Windows11上管理亮度的所有方法。如何在Windows11上更改亮度[10种方式解释]单显示器用户可以使用以下方法在Windows11上调整亮度。这包括使用单个显示器的台式机系统以及笔记本电脑。让我们开始吧。方法1:使用操作中心操作中心是访问

Windows上的激活过程有时会突然转向显示包含此错误代码0xc004f069的错误消息。虽然激活过程已经联机,但一些运行WindowsServer的旧系统可能会遇到此问题。通过这些初步检查,如果这些检查不能帮助您激活系统,请跳转到主要解决方案以解决问题。解决方法–关闭错误消息和激活窗口。然后,重新启动计算机。再次从头开始重试Windows激活过程。修复1–从终端激活从cmd终端激活WindowsServerEdition系统。阶段–1检查Windows服务器版本您必须检查您使用的是哪种类型的W


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

禅工作室 13.0.1
功能强大的PHP集成开发环境