*****分页!!!大家有空的都进来看看,up有分*********

littlejc2 2004-11-24 03:26:39
在的兄弟都看进来了,不好意思了,因为上次问了一个问题,可能大家没有注意,一直没有人答我,希望能通过这个贴子,再把大家召唤进来,帮我一把。
原贴是这个:
http://community.csdn.net/Expert/topic/3571/3571891.xml?temp=.7626154
我的问题是分页的时候,用模糊查询查数据库中的东西的时候,分页的第一页正常,显示搜到的记录数目和分页数目都正确,但按到下一页的时候,参数会传值丢失。就显示全选的纪录数和分页数。具体症状可以到原来哪个贴子里面看,不好意思让大家两边跑了,呜呜

那个帖子里唯一回我的的一个兄弟告诉我说
“因为$_SERVER['PHP_SELF']只能得到“base.php?p1=$p1&p2=p2"base.php
所以分面时再加一个参数,$_SERVER['PHP_SELF']?P1=$p1&p2=p2&page=$page就可能了”
但我看不懂他后面那个P1=$p1&p2=p2&page=$page这个具体的意思,在我这段程序里面怎么操作,大家能帮我看看,我下面这段分页的程序要怎么改才能搞定这个分页时传值丢失的问题。

这个是那段的程序。
<b>第<?=$_GET['pagenum'];?>页,共<?=$totalpage;?>页.......共<?=$total;?>条记录
</table><br/>
<?PHP
echo "<a href=".$_SERVER['PHP_SELF']."?pagenum=1>首页</a> ";
if ($_GET['pagenum']>1){
$temp_current=$_GET['pagenum']-1;
echo "<a href=".$_SERVER['PHP_SELF']."?pagenum=".$temp_current.">上一页</a> "; }
if ($_GET['pagenum']<$totalpage){
$temp_current=$_GET['pagenum']+1;
echo "<a href=".$_SERVER['PHP_SELF']."?pagenum=".$temp_current.">下一页</a> "; }
echo "<a href=".$_SERVER['PHP_SELF']."?pagenum=".$totalpage.">尾页</a>

另,虽然知道大家不是为了分而帮助人的,但是为了感谢那些帮我顶的和两边跑的兄弟,只要是回帖的我都给分的,这一贴和那一贴都可以,希望大家帮我看看这个问题。希望能尽快搞定,我都快给这个东西弄的头都炸拉。
...全文
268 点赞 收藏 32
写回复
32 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
littlejc2 2004-11-29
$pagesize = 20;
if(isset($_POST["submitflag"])){ //得到搜索关键字
$searchkey = $_POST["key"];
$page = 1;
}else{
$page = $_GET["key"];*********
$serchkey = $_GET["key"];

这句有点疑问,是不是说我的查询关键字是一个人名,最后打出的page就是人名了》
比如test.php?page=人名
回复
littlejc2 2004-11-29
这个问题解决了,呵呵,看了另一个兄弟的帖子,揭贴
回复
jamesxdltwo 2004-11-27
up
回复
solo_php 2004-11-26
To:littlejc2(半半)
Try

echo "<a href=".$fileself."pagenum=1>首页</a> ";
if ($_GET['pagenum']>1){
$temp_current=$_GET['pagenum']-1;
echo "<a href=".$fileself."pagenum=".$temp_current.">上一页</a> "; }
if ($_GET['pagenum']<$totalpage){
$temp_current=$_GET['pagenum']+1;
echo "<a href=".$fileself."pagenum=".$temp_current.">下一页</a> "; }
echo "<a href=".$fileself."pagenum=".$totalpage.">尾页</a> ";

===>

echo "<a href=".$fileself."?pagenum=1>首页</a> ";
if ($_GET['pagenum']>1){
$temp_current=$_GET['pagenum']-1;
echo "<a href=".$fileself."?pagenum=".$temp_current.">上一页</a> "; }
if ($_GET['pagenum']<$totalpage){
$temp_current=$_GET['pagenum']+1;
echo "<a href=".$fileself."?pagenum=".$temp_current.">下一页</a> "; }
echo "<a href=".$fileself."?pagenum=".$totalpage.">尾页</a> ";


用URL来传递参数的话,URL与第一个变量间以"?"链接。而变量间(带多个变量的时候)用"&"链接。
回复
littlejc2 2004-11-26
谢谢aomeng(冰雪六月) ,谢谢唠叨大,唠叨大,我爱你!!!!!!


aomeng(冰雪六月)那个查询可以这么用的,你用过就知道了,第一个地方多谢提醒了,谢谢拉。
回复
xuzuning 2004-11-26
其实这个问题很简单,而你却把他弄复杂了。
1、你是想通过url参数来传递查询条件的。其实用session保存查询条件来的要简单些,但不是非要这样不可
2、首先,查询条件的提交表单不要用post方式的,而用get方式的,这样无论是第一页还是后续页的处理方式都是一样的
3、当然表单也可以用post方式的,但在提交后要先做$_GET=$_POST;处理。以后就与后续页的处理没有什么不同了
4、生成的导航连接的url部分要用引号括起
这样的写法 echo "<a href=".$fileself."pagenum=".$temp_current.">上一页</a> ";
产生的html代码是这样的
<a href=http://127.0.0.1/new6.php?pagenum=单价>1000&pagenum=1>首页</a>
单价后面的>将被解释成a标记的结束,显然是不对的
只有这样才不会错:
<a href='http://127.0.0.1/new6.php?pagenum=单价>1000&pagenum=1'>首页</a>
所以程序要写成
echo "<a href='".$fileself."pagenum=".$temp_current."'>首页</a> ";

回复
aomeng 2004-11-26
楼主,不是我说你,你的代码很难读呀。
指出你两个问题。
1、页面中又是_GET,又是 _POST 是不行的,要知道通过页号的连接过来以后,你的_POST根本取不到值。上面有个兄弟已经指出了来了。

3、我没有用过mssql_data_seek,但是我感觉你用的有错误。看文档说的是这个函数是移动row 指针,并没有控制大小的成分在里面,所以你输出的时候肯定要加上循环才是。无论你用什么数据库,用标准的SQL肯定没有问题。
回复
surfchen 2004-11-26
session_start();
if (!empty($_POST['keyword']))//提交的时候注册一个SESSION,留着分页的时候用
{
$_SESSION['keyword']=$_POST['keyword'];
$keyword=$_POST['keyword'];
}
elseif (!empty($_SESSION['keyword']))//如果SESSION不为空,则把SESSION的关键词和查询类型写入变量
{
$keyword=$_SESSION['keyword'];
}
回复
zunyir 2004-11-26
up
回复
littlejc2 2004-11-26
感觉冲浪大哥的把查询条件写入session可能有用,我先试试,大家再帮我想想,怎么让他参数不丢失呢,还有我的这个问题大家帮我看看:
点submit
.本来上一页,下一页的超联接,变成了
1000&pagenum=1>首页 1000&pagenum=2>下一页 1000&pagenum=2>尾页
而点这个“1000&pagenum=1>首页”的 联接地址,出来的url是:http://127.0.0.1/new6.php?单价
页面是select * from tablename 的第二页。那个单价>1000的>丢掉了,大家看看是不是我下面这句话有语法错误啊。具体的程序在上面了。


echo "<a href=".$fileself."pagenum=".$temp_current.">上一页</a> ";
回复
littlejc2 2004-11-26
你这个问题最好结合js来做。可以把页面导航用js来提交,这样就可以轻松传递查询的参数了

ps:不知道你能不能懂-_-!




----------------------------------
大哥说的是,我还是菜鸟啊,这个还不太懂。
回复
littlejc2 2004-11-26
$strSQL=$strSQL." 采购人 LIKE '%{$_POST['cgr']}%'";
$fileself=$fileself."采购人={$_POST['cgr']}";
$_POST 改为$_GET
------------------------------
这位太搞笑了,呵呵,不过谢谢进来了。
回复
aomeng 2004-11-26
url 传参数是通过 $_GET["keyname"] 取的。
比如 test.php?a=1 取的a的值就是 $_GET["a"];
回复
aomeng 2004-11-26
楼主!
还是我帮你写一个吧。
<?php
//在查询表单中放一个 hidden 类型的 submitflag
$pagesize = 20;
if(isset($_POST["submitflag"])){ //得到搜索关键字
$searchkey = $_POST["key"];
$page = 1;
}else{
$page = $_GET["key"];
$serchkey = $_GET["key"];
}
$querysql = "select * from dbname where field like '%$serchkey%' ";
$result = mysql_query($querysql);
$total = mysql_num_rows($result);
$query = sprintf("%s Limit %s,'%%s%'",$querysql, $page*$pagesize,$pagesize);
if($total>$pagesize){
while($page*$pagesize<$total){
printf("<a href='page=%s&key=%s'>%s</a>",$page,$key,$page);
$page++;
}
}
/*
数据处理
*/
?>

我没有测试过,基本原理是这样的。
回复
littlejc2 2004-11-26
TOsolo_php(晕)
兄弟,用你上次那个程序能实现url参数传递分页吗,能不能弄个简单的模糊查询分页演示一下,我现在在搞session存储分页,不过希望把url传参也弄明白一下
谢拉!!!
回复
nationzhou 2004-11-25
up
回复
mzt 2004-11-25
参考pear中的pager吧
回复
klend 2004-11-25
一。比如:js函数可写成
function vPage(page){
document.page.page.value=page;
document.page.submit();
}

二。相应的上一页下一页的连接就可以写成
<a onclick="vPage(3)">上一页</a>

三。相应的隐藏表单就可以根据需要些,把查询条件都写到hidden里
回复
wxq4100798 2004-11-25
$strSQL=$strSQL." 采购人 LIKE '%{$_POST['cgr']}%'";
$fileself=$fileself."采购人={$_POST['cgr']}";
$_POST 改为$_GET
回复
klend 2004-11-25
你这个问题最好结合js来做。可以把页面导航用js来提交,这样就可以轻松传递查询的参数了

ps:不知道你能不能懂-_-!
回复
加载更多回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2004-11-24 03:26
社区公告
暂无公告