菜鸟问题:查询分页问题。 把参数用url传到本页。用$_GET去取。比如<a href='**.php?page=2&a=1&b=2&c=3'>下一页</a> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还是不太明白Pager($countAll,$pagelist是调用别人写的。 //定义几个全局变量: //$page:当前页码; //$firstcount:(数据库)查询的起始项; //$pagenav:页面导航条代码,函数内部并没有将它输出; //$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。 global $page,$firstcount,$pagenav,$_SERVER;1:请问在一页中我需怎样做才能保留住查询结果? 按你现在的代码是不能保留住查询结果,只能是每次去数据库取,比方说,第1页是1-3项,那第二页,自然是从(1*3+1=4)项开始,到第7项结束。2:但一点另一页记录就没有了。 你可以把你的那取数据的SQLyygygk语句打印出来,看是不是你需要的? 比较笨但也比较有效的方法就是用URL把所有的参数都写入URL中传递如xxx.php?class_id=12&key=yyy&id=12·············· 还是不明白为什么加上分页就不行。点击另一页相当于什么(刷新?)?还有一个查询页面传递的是session变量,不是用的表单提交的数据,分页显示就正常。差别到底在哪里,通过什么取消这种差别? 这是调用的分页程序,帮我看看怎么改?<?php/**** 通用php分页类。(仿Google样式)** 只需提供记录总数与每页显示数两个参数。(已附详细使用说明.....)** 无需指定URL,链接由程序生成。方便用于检索结果分页。**/class Pager{var $url;var $countall;var $page;var $thestr;var $backstr;var $nextstr;var $pg;//构造函数,实例化该类的时候自动执行该函数function Pager($countall,$countlist){@$this->pg=sprintf("%d",$_GET["pg"]);//保证pg在未指定的情况下为从第1页开始if ($this->pg==0){$this->pg=1;}if (!isset($this->pg)){$this->pg=1;}//记录数与每页显示数不能整队时,页数取余后加1$this->countall = $countall;if ($this->countall%$countlist!=0){$this->page=sprintf("%d",$this->countall/$countlist)+1;}else{$this->page=$this->countall/$countlist;}//得到当前的URL。具体实现请看最底部的函数实体$this->url = Pager::getUrl();//生成12345等数字形式的分页。if ($this->page<=10){for ($i=1;$i<$this->page+1;$i++){$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);}}else{if ($this->pg<=5){for ($i=1;$i<10;$i++){$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);}}else{if (6+$this->pg<=$this->page){for ($i=$this->pg-4;$i<$this->pg+6;$i++){$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);}}else{for ($i=$this->pg-4;$i<$this->page+1;$i++){$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);}}}}//生成上页下页等文字链接$this->backstr = Pager::gotoback($this->pg);$this->nextstr = Pager::gotonext($this->pg,$this->page);echo ($this->backstr.$this->thestr.$this->nextstr." 共".$this->countall." 条,每页".$countlist."条,分".$this->page."页");}//生成数字分页的辅助函数function makepg($i,$pg){if ($i==$pg){return " <font color=red><b>".$i."</b></font>";}else{return " <a href=".Pager::replacepg($this->url,5,$i).">".$i."</a>";}}//生成上一页等信息的函数function gotoback($pg){if ($pg-1>0){return $this->gotoback=" <a href=".Pager::replacepg($this->url,3,0).">首页</a> <a href=".Pager::replacepg($this->url,2,0).">上页</a>";}else{return $this->gotoback="";}}//生成下一页等信息的函数function gotonext($pg,$page){if ($pg < $page){return " <a href=".Pager::replacepg($this->url,1,0).">下页</a> <a href=".Pager::replacepg($this->url,4,0).">尾页</a>";}else{return "";}}//处理url中$pg的方法,用于自动生成pg=xfunction replacepg($url,$flag,$i){if ($flag == 1){$temp_pg = $this->pg;return str_replace("pg=".$temp_pg,"pg=".($this->pg+1),$url);}else if($flag == 2) {$temp_pg = $this->pg;return str_replace("pg=".$temp_pg,"pg=".($this->pg-1),$url);}else if($flag == 3) {$temp_pg = $this->pg;return str_replace("pg=".$temp_pg,"pg=1",$url);}else if($flag == 4){$temp_pg = $this->pg;return str_replace("pg=".$temp_pg,"pg=".$this->page,$url);}else if($flag == 5){$temp_pg = $this->pg;return str_replace("pg=".$temp_pg,"pg=".$i,$url);}else{return $url;}}//获得当前URL的方法function getUrl(){$url="http://".$_SERVER["HTTP_HOST"];if(isset($_SERVER["REQUEST_URI"])){$url.=$_SERVER["REQUEST_URI"];}else{$url.=$_SERVER["PHP_SELF"];if(!empty($_SERVER["QUERY_STRING"])){$url.="?".$_SERVER["QUERY_STRING"];}}//在当前的URL里加入pg=x字样if (!ereg("(pg=|PG=|pG=|Pg=)", $url)){if (!strpos($url,"?")){$url = $url."?pg=1";}else{$url = $url."&pg=1";}}return $url;}}?> 网站被sql注入 怎么防止啊 php 连接mssql 是查询中文 出现乱码 在服务器上面配置Apache多个网站,请看配置 一个列表中如何进行翻页功能??高手解救阿,好烦啊 关于系统配置的问题,是否可以搭建WINDOWS平台下? 帮帮我吧,请问哪里有PHP与Oracle的例子呀?初学,小女子在这里谢过了 关于apache2.0.47的端口侦听问题! 请问大家php连接access是怎么连的? SMTP在WIN2000里有什么用? PHP能不能这样啊?请高手指教!! 如何让表单中只能输入字母 %u811a%u672c 这样的中文转换过来的字符,应该用什么函数实现?
//$page:当前页码;
//$firstcount:(数据库)查询的起始项;
//$pagenav:页面导航条代码,函数内部并没有将它输出;
//$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。
global $page,$firstcount,$pagenav,$_SERVER;
1:请问在一页中我需怎样做才能保留住查询结果?
按你现在的代码是不能保留住查询结果,只能是每次去数据库取,比方说,第1页是1-3项,那第二页,自然是从(1*3+1=4)项开始,到第7项结束。
2:但一点另一页记录就没有了。
你可以把你的那取数据的SQLyygygk语句打印出来,看是不是你需要的?
把所有的参数都写入URL中传递
如xxx.php?class_id=12&key=yyy&id=12··············
差别到底在哪里,通过什么取消这种差别?
<?php/**
** 通用php分页类。(仿Google样式)
** 只需提供记录总数与每页显示数两个参数。(已附详细使用说明.....)
** 无需指定URL,链接由程序生成。方便用于检索结果分页。
**/class Pager{
var $url;
var $countall;
var $page;
var $thestr;
var $backstr;
var $nextstr;
var $pg;
//构造函数,实例化该类的时候自动执行该函数
function Pager($countall,$countlist){
@$this->pg=sprintf("%d",$_GET["pg"]);
//保证pg在未指定的情况下为从第1页开始
if ($this->pg==0){
$this->pg=1;
}
if (!isset($this->pg)){
$this->pg=1;
}
//记录数与每页显示数不能整队时,页数取余后加1
$this->countall = $countall;
if ($this->countall%$countlist!=0){
$this->page=sprintf("%d",$this->countall/$countlist)+1;
}
else{
$this->page=$this->countall/$countlist;
}//得到当前的URL。具体实现请看最底部的函数实体
$this->url = Pager::getUrl();//生成12345等数字形式的分页。
if ($this->page<=10){
for ($i=1;$i<$this->page+1;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}
else{
if ($this->pg<=5){
for ($i=1;$i<10;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}
else{
if (6+$this->pg<=$this->page){
for ($i=$this->pg-4;$i<$this->pg+6;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}
else{
for ($i=$this->pg-4;$i<$this->page+1;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}}
}
}
//生成上页下页等文字链接
$this->backstr = Pager::gotoback($this->pg);
$this->nextstr = Pager::gotonext($this->pg,$this->page);
echo ($this->backstr.$this->thestr.$this->nextstr." 共".$this->countall." 条,每页".$countlist."条,分".$this->page."页");
}
//生成数字分页的辅助函数
function makepg($i,$pg){
if ($i==$pg){
return " <font color=red><b>".$i."</b></font>";
}
else{
return " <a href=".Pager::replacepg($this->url,5,$i).">".$i."</a>";
}
}
//生成上一页等信息的函数
function gotoback($pg){
if ($pg-1>0){
return $this->gotoback=" <a href=".Pager::replacepg($this->url,3,0).">首页</a> <a href=".Pager::replacepg($this->url,2,0).">上页</a>";
}
else{
return $this->gotoback="";
}}
//生成下一页等信息的函数
function gotonext($pg,$page){
if ($pg < $page){
return " <a href=".Pager::replacepg($this->url,1,0).">下页</a> <a href=".Pager::replacepg($this->url,4,0).">尾页</a>";
}
else{
return "";
}
}//处理url中$pg的方法,用于自动生成pg=x
function replacepg($url,$flag,$i){
if ($flag == 1){
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".($this->pg+1),$url);
}
else if($flag == 2) {
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".($this->pg-1),$url);
}
else if($flag == 3) {
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=1",$url);
}
else if($flag == 4){
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".$this->page,$url);
}
else if($flag == 5){
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".$i,$url);
}
else{
return $url;
}
}
//获得当前URL的方法
function getUrl(){
$url="http://".$_SERVER["HTTP_HOST"];if(isset($_SERVER["REQUEST_URI"])){
$url.=$_SERVER["REQUEST_URI"];
}
else{
$url.=$_SERVER["PHP_SELF"];
if(!empty($_SERVER["QUERY_STRING"])){
$url.="?".$_SERVER["QUERY_STRING"];
}
}
//在当前的URL里加入pg=x字样
if (!ereg("(pg=|PG=|pG=|Pg=)", $url)){
if (!strpos($url,"?")){
$url = $url."?pg=1";
}
else{
$url = $url."&pg=1";
}
}
return $url;
}
}
?>