如何让php带搜索条件分页 分页就是sql语句中limit就可以了,没有什么特别的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是LIMIT,但是从第一页到第二页的时候就显示不正确了带搜索的分页跟普通分页不一样吧 query的时候把条件带上就行了, 包括当前页号. 在分页的链接上把查询条件都传过去。其实分页就是个sql中的limit,因此只要带着查询条件,就可以实现了。 在分析页面里$_GET['你的条件'].SQL语句里limit 然后order by 用地址栏传值 关键字什么的$_GET 以下是findmessage.html:---------------------------------------------------------------------------<form id="form1" name="form1" method="post" action="showmessage.php"> 请输入您想查询的关键字: <label> <input name="find" type="text" id="find" size="30" maxlength="30" /> </label> <label> <input type="submit" name="Submit" value="提交" /> </label> <input name="findmessage" type="hidden" id="findmessage" value="true" /></form>-------------------------------------------------------------------以下是showmessage.php-------------------------------------------------------------------<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>留言信息总汇</title><style type="text/css"><!--body,td,th { font-size: 14px;}.STYLE1 { font-size: 16px; color: #666666;}--></style></head><body leftMargin=0 topMargin=0 rightmargin=0 ><p><?php $find=($_POST['find']); //echo $find; if($findmessage=="true") $db=mysql_connect("localhost","root","123"); mysql_select_db("test",$db);//设定每一页显示的记录数 $pagesize=5;//取得记录总数 $res=mysql_query("select count(id) from message where uname='$find' " ,$db); //$res=mysql_query("select count(id) from message " ,$db); $myrow = mysql_fetch_array($res); @mysql_query("set names gb2312 "); $numrows=$myrow[0];//计算总页数 $pages=intval($numrows/$pagesize); if ($numrows%$pagesize) $pages++;//判断页数设置与否,如无则定义为首页 if (!isset($page)) $page=1;//判断转到页数 if (isset($ys)) if ($ys>$pages) $page=$pages; else $page=$ys;//计算记录偏移量 $offset=$pagesize*($page-1);?></p><p> </p><table width="90%" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="10%" height="24" bgcolor="#ec9307"><div align="center">序号</div></td> <td width="20%" bgcolor="#ec9307"><div align="center">留言用户</div></td> <td width="20%" bgcolor="#ec9307"><div align="center">留言时间</div></td> <td width="30%" bgcolor="#ec9307"><div align="center">留言内容</div></td> <td bgcolor="#ec9307"><div align="center">回复</div></td> </tr> <?php //取记录 $res=mysql_query("select * from message where uname='$find' order by time limit $offset,$pagesize" ,$db); //$res=mysql_query("select * from message order by time limit $offset,$pagesize" ,$db); @mysql_query("set names gb2312 ");//循环显示记录 if ($myrow = mysql_fetch_array($res)) { $i=0; do { $i++;?> <tr> <td width="10%"><div align="center"><?php echo $myrow['id'];?></div></td> <td><div align="center"><font size="2"> <?php echo $myrow['uname'];?></font></div></td> <td><div align="center"><font size="2"><?php echo $myrow['time'];?></font></div></td> <td><div align="center"><font size="2"><?php echo $myrow['qtext'];?></font></div></td> <td><div align="center"><font size="2"><?php echo $myrow['atext'];?></font></div></td> </tr> <?php } while ($myrow = mysql_fetch_array($res)); echo "</table>" ;}//显示总页数 echo "<div align='center'>共有".$pages."页(".$page."/".$pages.")<br>";//显示分页数 for ($i=1;$i<$page;$i++) echo "<a href='$PHP_SELF?page=".$i."'>第".$i ."页</a> "; echo "第".$page."页 "; for ($i=$page+1;$i<=$pages;$i++) echo "<a href='$PHP_SELF?page=".$i."'>第".$i ."页</a> "; echo "<br>";//显示转到页数 echo "<form action='$PHP_SELF' method='post'> ";//计算首页、上一页、下一页、尾页的页数值 $first=1; $prev=$page-1; $next=$page+1; $last=$pages; if ($page>1) { echo "<a href='$PHP_SELF?page=".$first."'>首页</a> "; echo "<a href='$PHP_SELF?page=".$prev."'>上一页</a> "; } if ($page<$pages) { echo "<a href='$PHP_SELF?page=".$next."'>下一页</a> "; echo "<a href='$PHP_SELF?page=".$last."'>尾页</a> "; } echo "转到<input type=text name='ys' size='2' maxlength='2' value=".$page.">页"; echo "<input type=submit name='Submit' value='Go'>"; echo "</form>"; echo "</div>";?></table><p> </p></body></html>-------------------------------------------------------------运行起来就是不正确。请帮忙 try:1.$find=$_REQUEST['find'];2.if ($page>1){echo "<a href='$PHP_SELF?page=".$first."&find={$find}'>首页</a> ";echo "<a href='$PHP_SELF?page=".$prev."&find={$find}'>上一页</a> ";}if ($page<$pages){echo "<a href='$PHP_SELF?page=".$next."&find={$find}'>下一页</a> ";echo "<a href='$PHP_SELF?page=".$last."&find={$find}'>尾页</a> ";} 如果有非常多的条件就麻烦啦...SQL存在SESSION就行了 foreach($_GET as $k=>$v){ $page_add .= '&'.$k.'='.$v; $sql_add .= ' AND '.$k.'=\''.$v.'\'';}翻页的程序要在URL后加上$page_add查数据库的程序要在SQL后加上$sql_add 感谢大家的帮助,问题已经解决。下面把代码贴出来,希望对有同样问题的朋友有帮助:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>留言信息总汇</title><style type="text/css"><!--body,td,th { font-size: 14px;}.STYLE1 { font-size: 16px; color: #666666;}--></style></head><body leftMargin=0 topMargin=0 rightmargin=0 ><p><?php ############################################# ########## 开始 ############################################# if($_POST['find']=="") $find=($_GET['find']); if($_GET['find']=="") $find=$_POST['find']; ############################################# ########## 连接数据库 ############################################# $db=mysql_connect("localhost","root","123"); mysql_select_db("test",$db); if($findmessage=="1")//设定每一页显示的记录数 $pagesize=5;//取得记录总数 $res=mysql_query("select count(id) from message where uname='$find' " ,$db); $myrow = mysql_fetch_array($res); $res2=mysql_query("select id from message where uname='$find' " ,$db); $totos = mysql_num_rows($res2); if($totos=="0") { echo "<br><br><br><br><div align='center'>对不起,没有找到相关资料!</div>"; exit; } @mysql_query("set names gb2312 "); $numrows=$myrow[0];//计算总页数 $pages=intval($numrows/$pagesize); if ($numrows%$pagesize) $pages++;//判断页数设置与否,如无则定义为首页 if (!isset($page)) $page=1; if ($_GET[page]>$pages) $page=$pages; if ($_GET[page]<0) $page=1;//计算记录偏移量 $offset=$pagesize*($page-1);echo<<<EOT</p><p> </p><table width="90%" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="15%" height="24" bgcolor="#ec9307"><div align="center">留言序号</div></td> <td width="20%" bgcolor="#ec9307"><div align="center">留言用户</div></td> <td width="20%" bgcolor="#ec9307"><div align="center">留言时间</div></td> <td width="25%" bgcolor="#ec9307"><div align="center">留言内容</div></td> <td bgcolor="#ec9307"><div align="center">留言回复</div></td> </tr>EOT; //取记录 $res=mysql_query("select * from message where uname='$find' order by time limit $offset,$pagesize" ,$db); $toto = mysql_num_rows($res); @mysql_query("set names gb2312 ");//循环显示记录 if ($myrow = mysql_fetch_array($res)) { $i=0; do { $i++; ############################################# ########## 输出 #############################################?><tr> <td width="10%"><div align="center"><?php echo $myrow['id'];?></div></td> <td><div align="center"><?php echo $myrow['uname'];?></div></td> <td><div align="center"><?php echo $myrow['time'];?></div></td> <td><div align="center"><?php echo $myrow['qtext'];?></div></td> <td><div align="center"><?php echo $myrow['atext'];?></div></td></tr><p> <?php } while ($myrow = mysql_fetch_array($res)); echo "</table>" ;}//显示总页数 echo "<br><div align='center'>(本页:".$toto."条信息/共".$totos."条信息) , 共有".$pages."页(".$page."/".$pages.")<br>";//显示分页数 for ($i=1;$i<$page;$i++) echo "<a href='$PHP_SELF?page=".$i."&find=$find&findmessage=1'>第".$i ."页</a> "; echo "第".$page."页 "; for ($i=$page+1;$i<=$pages;$i++) echo "<a href='$PHP_SELF?page=".$i."&find=$find&findmessage=1'>第".$i ."页</a> "; echo "<br>";//显示转到页数 echo "<form action='$PHP_SELF' method='post'> ";//计算首页、上一页、下一页、尾页的页数值 $first=1; $prev=$page-1; $next=$page+1; $last=$pages; if ($page>1) { echo "<a href='$PHP_SELF?page=".$first."&find=$find&findmessage=1'>首页</a> "; echo "<a href='$PHP_SELF?page=".$prev."&find=$find&findmessage=1'>上一页</a> "; } if ($page<$pages) { echo "<a href='$PHP_SELF?page=".$next."&find=$find&findmessage=1'>下一页</a> "; echo "<a href='$PHP_SELF?page=".$last."&find=$find&findmessage=1'>尾页</a> "; } echo "</form>"; echo "</div>";?></p><p> </p></body></html> juqery ajax获取的数据 第一次不显示 第二次才能显示 最新的新浪PHP面试题(2009.3) 关于皮肤设计 用php怎么写一歌选课系统? PHP中的mysql_fetch_assoc()函数 安装Mysql时出错,向高人请教!! php 群发邮件时的问题 在CS或VB文件中函数前面有个public或private,有什么作用啊?以前没用过的 为什么文件写入不成功? 加密算法中为啥总是提示这个错误呢 做个视频网站! (新手)插入数据不成功
带搜索的分页跟普通分页不一样吧
SQL语句里limit 然后order by
---------------------------------------------------------------------------
<form id="form1" name="form1" method="post" action="showmessage.php">
请输入您想查询的关键字:
<label>
<input name="find" type="text" id="find" size="30" maxlength="30" />
</label>
<label>
<input type="submit" name="Submit" value="提交" />
</label>
<input name="findmessage" type="hidden" id="findmessage" value="true" />
</form>
-------------------------------------------------------------------
以下是showmessage.php
-------------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>留言信息总汇</title>
<style type="text/css">
<!--
body,td,th {
font-size: 14px;
}
.STYLE1 {
font-size: 16px;
color: #666666;
}
-->
</style>
</head>
<body leftMargin=0 topMargin=0 rightmargin=0 >
<p><?php
$find=($_POST['find']);
//echo $find;
if($findmessage=="true")
$db=mysql_connect("localhost","root","123");
mysql_select_db("test",$db);
//设定每一页显示的记录数
$pagesize=5;
//取得记录总数
$res=mysql_query("select count(id) from message where uname='$find' " ,$db);
//$res=mysql_query("select count(id) from message " ,$db);
$myrow = mysql_fetch_array($res);
@mysql_query("set names gb2312 ");
$numrows=$myrow[0];
//计算总页数
$pages=intval($numrows/$pagesize);
if ($numrows%$pagesize)
$pages++;
//判断页数设置与否,如无则定义为首页
if (!isset($page))
$page=1;
//判断转到页数
if (isset($ys))
if ($ys>$pages)
$page=$pages;
else
$page=$ys;
//计算记录偏移量
$offset=$pagesize*($page-1);?>
</p>
<p> </p>
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="10%" height="24" bgcolor="#ec9307"><div align="center">序号</div></td>
<td width="20%" bgcolor="#ec9307"><div align="center">留言用户</div></td>
<td width="20%" bgcolor="#ec9307"><div align="center">留言时间</div></td>
<td width="30%" bgcolor="#ec9307"><div align="center">留言内容</div></td>
<td bgcolor="#ec9307"><div align="center">回复</div></td>
</tr>
<?php
//取记录
$res=mysql_query("select * from message where uname='$find' order by time limit $offset,$pagesize" ,$db);
//$res=mysql_query("select * from message order by time limit $offset,$pagesize" ,$db);
@mysql_query("set names gb2312 ");
//循环显示记录
if ($myrow = mysql_fetch_array($res))
{
$i=0;
do
{
$i++;
?>
<tr>
<td width="10%"><div align="center"><?php echo $myrow['id'];?></div></td>
<td><div align="center"><font size="2"> <?php echo $myrow['uname'];?></font></div></td>
<td><div align="center"><font size="2"><?php echo $myrow['time'];?></font></div></td>
<td><div align="center"><font size="2"><?php echo $myrow['qtext'];?></font></div></td>
<td><div align="center"><font size="2"><?php echo $myrow['atext'];?></font></div></td>
</tr>
<?php
}
while ($myrow = mysql_fetch_array($res));
echo "</table>" ;
}
//显示总页数
echo "<div align='center'>共有".$pages."页(".$page."/".$pages.")<br>";
//显示分页数
for ($i=1;$i<$page;$i++)
echo "<a href='$PHP_SELF?page=".$i."'>第".$i ."页</a> ";
echo "第".$page."页 ";
for ($i=$page+1;$i<=$pages;$i++)
echo "<a href='$PHP_SELF?page=".$i."'>第".$i ."页</a> ";
echo "<br>";
//显示转到页数
echo "<form action='$PHP_SELF' method='post'> ";
//计算首页、上一页、下一页、尾页的页数值
$first=1;
$prev=$page-1;
$next=$page+1;
$last=$pages;
if ($page>1)
{
echo "<a href='$PHP_SELF?page=".$first."'>首页</a> ";
echo "<a href='$PHP_SELF?page=".$prev."'>上一页</a> ";
}
if ($page<$pages)
{
echo "<a href='$PHP_SELF?page=".$next."'>下一页</a> ";
echo "<a href='$PHP_SELF?page=".$last."'>尾页</a> ";
}
echo "转到<input type=text name='ys' size='2' maxlength='2' value=".$page.">页";
echo "<input type=submit name='Submit' value='Go'>";
echo "</form>";
echo "</div>";
?>
</table><p> </p>
</body>
</html>
-------------------------------------------------------------
运行起来就是不正确。
请帮忙
1.$find=$_REQUEST['find'];2.if ($page>1)
{
echo "<a href='$PHP_SELF?page=".$first."&find={$find}'>首页</a> ";
echo "<a href='$PHP_SELF?page=".$prev."&find={$find}'>上一页</a> ";
}
if ($page<$pages)
{
echo "<a href='$PHP_SELF?page=".$next."&find={$find}'>下一页</a> ";
echo "<a href='$PHP_SELF?page=".$last."&find={$find}'>尾页</a> ";
}
$page_add .= '&'.$k.'='.$v;
$sql_add .= ' AND '.$k.'=\''.$v.'\'';
}
翻页的程序要在URL后加上$page_add
查数据库的程序要在SQL后加上$sql_add
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>留言信息总汇</title>
<style type="text/css">
<!--
body,td,th {
font-size: 14px;
}
.STYLE1 {
font-size: 16px;
color: #666666;
}
-->
</style>
</head>
<body leftMargin=0 topMargin=0 rightmargin=0 >
<p>
<?php
#############################################
########## 开始
############################################# if($_POST['find']=="")
$find=($_GET['find']);
if($_GET['find']=="")
$find=$_POST['find'];
#############################################
########## 连接数据库
#############################################
$db=mysql_connect("localhost","root","123");
mysql_select_db("test",$db);
if($findmessage=="1")
//设定每一页显示的记录数
$pagesize=5;
//取得记录总数
$res=mysql_query("select count(id) from message where uname='$find' " ,$db);
$myrow = mysql_fetch_array($res);
$res2=mysql_query("select id from message where uname='$find' " ,$db);
$totos = mysql_num_rows($res2);
if($totos=="0")
{
echo "<br><br><br><br><div align='center'>对不起,没有找到相关资料!</div>";
exit;
}
@mysql_query("set names gb2312 ");
$numrows=$myrow[0];
//计算总页数
$pages=intval($numrows/$pagesize);
if ($numrows%$pagesize)
$pages++;
//判断页数设置与否,如无则定义为首页
if (!isset($page))
$page=1;
if ($_GET[page]>$pages)
$page=$pages;
if ($_GET[page]<0)
$page=1;
//计算记录偏移量
$offset=$pagesize*($page-1);echo<<<EOT
</p>
<p> </p>
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="15%" height="24" bgcolor="#ec9307"><div align="center">留言序号</div></td>
<td width="20%" bgcolor="#ec9307"><div align="center">留言用户</div></td>
<td width="20%" bgcolor="#ec9307"><div align="center">留言时间</div></td>
<td width="25%" bgcolor="#ec9307"><div align="center">留言内容</div></td>
<td bgcolor="#ec9307"><div align="center">留言回复</div></td>
</tr>
EOT; //取记录
$res=mysql_query("select * from message where uname='$find' order by time limit $offset,$pagesize" ,$db);
$toto = mysql_num_rows($res);
@mysql_query("set names gb2312 ");
//循环显示记录
if ($myrow = mysql_fetch_array($res))
{
$i=0;
do
{
$i++;
#############################################
########## 输出
#############################################
?>
<tr>
<td width="10%"><div align="center"><?php echo $myrow['id'];?></div></td>
<td><div align="center"><?php echo $myrow['uname'];?></div></td>
<td><div align="center"><?php echo $myrow['time'];?></div></td>
<td><div align="center"><?php echo $myrow['qtext'];?></div></td>
<td><div align="center"><?php echo $myrow['atext'];?></div></td>
</tr>
<p>
<?php
}
while ($myrow = mysql_fetch_array($res));
echo "</table>" ;
}
//显示总页数
echo "<br><div align='center'>(本页:".$toto."条信息/共".$totos."条信息) , 共有".$pages."页(".$page."/".$pages.")<br>";
//显示分页数
for ($i=1;$i<$page;$i++)
echo "<a href='$PHP_SELF?page=".$i."&find=$find&findmessage=1'>第".$i ."页</a> ";
echo "第".$page."页 ";
for ($i=$page+1;$i<=$pages;$i++)
echo "<a href='$PHP_SELF?page=".$i."&find=$find&findmessage=1'>第".$i ."页</a> ";
echo "<br>";
//显示转到页数
echo "<form action='$PHP_SELF' method='post'> ";
//计算首页、上一页、下一页、尾页的页数值
$first=1;
$prev=$page-1;
$next=$page+1;
$last=$pages;
if ($page>1)
{
echo "<a href='$PHP_SELF?page=".$first."&find=$find&findmessage=1'>首页</a> ";
echo "<a href='$PHP_SELF?page=".$prev."&find=$find&findmessage=1'>上一页</a> ";
}
if ($page<$pages)
{
echo "<a href='$PHP_SELF?page=".$next."&find=$find&findmessage=1'>下一页</a> ";
echo "<a href='$PHP_SELF?page=".$last."&find=$find&findmessage=1'>尾页</a> ";
}
echo "</form>";
echo "</div>";
?>
</p>
<p> </p>
</body>
</html>