如何实现分页,包括两个函数,两个调用,两个函数

本文介绍了如何在Python中实现数据库查询的分页功能,包括`genpage`和`showpage`两个核心函数,分别用于生成分页SQL和显示分页链接。通过全局变量传递参数,支持不同页面大小和跳转链接的生成。示例适用于Django等Web框架。
摘要由CSDN通过智能技术生成

<? 
//分页函数 
function genpage(&$sql,$page_size=2) 

global $prepage,$nextpage,$pages,$sums; //out param 
$page = $_GET["page"]; 
$eachpage = $page_size; 
$pagesql = strstr($sql," from "); 
$pagesql = "select count(*) as ids ".$pagesql; 
$conn = mysql_query($pagesql) or die(mysql_error()); 
if($rs = mysql_fetch_array($conn)) $sums = $rs[0]; 
$pages = ceil(($sums-0.5)/$eachpage)-1; 
$pages = $pages>=0?$pages:0; 
$prepage = ($page>0)?$page-1:0; 
$nextpage = ($page<$pages)?$page+1:$pages; 
$startpos = $page*$eachpage; 
$sql .=" limit $startpos,$eachpage "; 

// 显示分页 
function showpage() 

global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function 
$shownum =10/2; 
$startpage = ($page>=$shownum)?$page-$shownum:0; 
$endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages; 

echo "共".($pages+1)."页: "; 
if($page>0)echo "<a href=$PHP_SELF?page=0$queryString>首页</a>"; 
if($startpage>0) 
echo " ... <b><a href=$PHP_SELF?page=".($page-$shownum*2)."$queryString>?</a></b>"; 
for($i=$startpage;$i<=$endpage;$i++) 

if($i==$page) echo " <b>[".($i+1)."]</b> "; 
else echo " <a href=$PHP_SELF?page=$i$queryString>".($i+1)."</a> "; 

if($endpage<$pages) 
echo "<b><a href=$PHP_SELF?page=".($page+$shownum*2)."$queryString>?</a></b> ... "; 
if($page<$pages) 
echo "<a href=$PHP_SELF?page=$pages$queryString>尾页</a>"; 

//显示带分类的分页 
function showpage1() 

$fenlei=$_GET["fenleiid"]; 
global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function 
$shownum =10/2; 
$startpage = ($page>=$shownum)?$page-$shownum:0; 
$endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages; 

echo "共".($pages+1)."页: "; 
if($page>0)echo "<a href=$PHP_SELF?fenleiid=$fenlei&page=0$queryString>首页</a>"; 
if($startpage>0) 
echo " ... <b><a href=$PHP_SELF?fenleiid=$fenlei&page=".($page-$shownum*2)."$queryString>?</a></b>"; 
for($i=$startpage;$i<=$endpage;$i++) 

if($i==$page) echo " <b>[".($i+1)."]</b> "; 
else echo " <a href=$PHP_SELF?fenleiid=$fenlei&page=$i$queryString>".($i+1)."</a> "; 

if($endpage<$pages) 
echo "<b><a href=$PHP_SELF?fenleiid=$fenlei&page=".($page+$shownum*2)."$queryString>?</a></b> ... "; 
if($page<$pages) 
echo "<a href=$PHP_SELF?fenleiid=$fenlei&page=$pages$queryString>尾页</a& amp; gt;"; 

?> 

<SCRIPT language=javascript> 
<!-- 
function confirmlogin() 

if (document.frmmain.username.value.length<4 || document.frmmain.username.value=="") 

document.frmmain.username.focus(); 
document.frmmain.username.select; 
window.alert("请输入你的用户名!"); 
return false; 

if (document.frmmain.password.value.length<4) 

document.frmmain.password.focus(); 
document.frmmain.password.select; 
window.alert("请输入你的密码!"); 
return false; 

return true; 

//--> 
</SCRIPT> 

function substrgb($in,$num){ 
$pos=0; 
$out=""; 
while($c=substr($in,$pos,1)){ 
if($c=="\n") break; 
if(ord($c)>128){ 
$out.=$c; 
$pos++; 
$c=substr($in,$pos,1); 

$out.=$c; 
}else{ 
$out.=$c; 

$pos++; 
if($pos>=$num) break; 

if($out!=$in) $out = $out . "..."; 
return $out; 

if ($admin=="" or (strlen($admin)>16) or (strlen($admin)<2)) { 
echo "<SCRIPT language=JavaScript>alert('请输入用户名(不能大于16小于2)');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 

if ($password=="" or strlen($password)>16 or strlen($password)<6) { 
echo "<SCRIPT language=JavaScript>alert('密码长度为6-16个字符');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 

if ($password=="") { 
echo "<SCRIPT language=JavaScript>alert('确认密码不能为空');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 
}else{ 
if ($password!=$password1) { 
echo "<SCRIPT language=JavaScript>alert('密码和确认密码不一致');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 


if ($wt="") { 
echo "<SCRIPT language=JavaScript>alert('密码问题不能为空');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 

if ($da="") { 
echo "<SCRIPT language=JavaScript>alert('问题答案不能为空');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 


if ($qq!="") { 
if (!is_numeric($qq)) { 
echo "<SCRIPT language=JavaScript>alert('QQ号码必须是数字');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 


if ($youbian=="" or strlen($youbian)!=6) { 
echo "<SCRIPT language=JavaScript>alert('请正确输入邮编');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 

if ($youbian!="") { 
if (!is_numeric($youbian)) { 
echo "<SCRIPT language=JavaScript>alert('邮编必须是数字');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 


if ($dizhi="") { 
echo "<SCRIPT language=JavaScript>alert('住址不能为空');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 

if ($mail=="") { 
echo "<SCRIPT language=JavaScript>alert('E-mail不能为空!');"; 
echo "this.location.href='vbscript:history.back()';</SCRIPT>"; 

if ($textarea=="") { 
echo "<SCRIPT language=JavaScript>alert('个人说明不能为空!');"; 
echo "this.location.href='vbscript:history.back()';</SCRIPT>"; 

if ($textarea=="" or strlen(textarea)>150) { 
echo "<SCRIPT language=JavaScript>alert('个人说明为150个字符');"; 
echo"this.location.href='vbscript:history.back()';</SCRIPT>"; 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易语言代码小蜜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值