php用coreseek调用mysql数据进行搜索,输出结果的分页问题
我在网上查了好多相关的分页方法,但是不会用。这个是搜索栏的页面<?phpinclude("conn.php");?><formaction="find.php"metho...
我在网上查了好多相关的分页方法,但是不会用。
这个是搜索栏的页面
<?php
include ("conn.php");
?>
<form action="find.php" method="post">
请输入关键字:<input type="text" name="word"><br>
<input type="submit" name="submit" value="搜索一下"/>
</form>
这个是显示结果的页面
<html>
<head>
<meta http-equiv="content-type"content="text/html;charset=utf-8">
<title>Find</title>
</head>
<body>
<h1 id='top'>查询输出页面</h1>
<?php
include("sphinxapi.php");
$keyword=$_POST['word'];
$sphinx= new SphinxClient();
$sphinx->SetServer("localhost",9312);
$sphinx->SetMatchMode(SPH_MATCH_ANY);
$sphinx->SetLimits(0,5);
$result=$sphinx->query("$keyword","*");
echo"<pre>";
print_r($result);
echo"</pre>";
?>
</body>
</html>
我原来的页面里面只能显示第一页的5个数据,后面的不能显示
我现在想在结果的页面做出每页显示5个结果,能有上一页下一页按钮来查看其他结果的样式。
应该怎么做?
谢谢! 展开
这个是搜索栏的页面
<?php
include ("conn.php");
?>
<form action="find.php" method="post">
请输入关键字:<input type="text" name="word"><br>
<input type="submit" name="submit" value="搜索一下"/>
</form>
这个是显示结果的页面
<html>
<head>
<meta http-equiv="content-type"content="text/html;charset=utf-8">
<title>Find</title>
</head>
<body>
<h1 id='top'>查询输出页面</h1>
<?php
include("sphinxapi.php");
$keyword=$_POST['word'];
$sphinx= new SphinxClient();
$sphinx->SetServer("localhost",9312);
$sphinx->SetMatchMode(SPH_MATCH_ANY);
$sphinx->SetLimits(0,5);
$result=$sphinx->query("$keyword","*");
echo"<pre>";
print_r($result);
echo"</pre>";
?>
</body>
</html>
我原来的页面里面只能显示第一页的5个数据,后面的不能显示
我现在想在结果的页面做出每页显示5个结果,能有上一页下一页按钮来查看其他结果的样式。
应该怎么做?
谢谢! 展开
展开全部
对于分页,需要设置2个变量
$page=empty($_GET['page']) ? 1 : (int)$_GET['page'];//当前第几页
$prepage=5;//每页显示几条
还有点,因为你是post方式提交,所以在上一页和下一页的按钮上需要填写传递的参数
并且在判断keyword变量需要判断post和get2个方式
我就重写PHP这部分
<?php
include("sphinxapi.php");
//分页所需参数
$page=empty($_GET['page']) ? 1 : (int)$_GET['page'];//当前第几页
$prepage=5;//每页显示几条
//上一页下一页的传递需要保证变量有效
//复杂点可以通过判断$_POST['word']来判断是否是第一次提交等等,就看你自己的需要了
$keyword=empty($_POST['word']) ? $_GET['keyword'] : $_POST['word'];
$sphinx= new SphinxClient();
$sphinx->SetServer("localhost",9312);
$sphinx->SetMatchMode(SPH_MATCH_ANY);
$sphinx->SetLimits(($page-1)*$prepage,$prepage);//传递当前页面所需的数据条数的参数
$result=$sphinx->query("$keyword","*");
if($result['total']==0){
echo '没有结果,请重新搜索';
exit;
}
echo"<pre>";
print_r($result);
echo"</pre>";
if($page >1) echo '<a href="find.php?keyword='.$keyword.'&page='.($page-1).'">上一页</a><br />';
if($result['total']>($page*$prepage)) echo '<a href="find.php?keyword='.$keyword.'&page='.($page+1).'">下一页</a><br />';
?>
$page=empty($_GET['page']) ? 1 : (int)$_GET['page'];//当前第几页
$prepage=5;//每页显示几条
还有点,因为你是post方式提交,所以在上一页和下一页的按钮上需要填写传递的参数
并且在判断keyword变量需要判断post和get2个方式
我就重写PHP这部分
<?php
include("sphinxapi.php");
//分页所需参数
$page=empty($_GET['page']) ? 1 : (int)$_GET['page'];//当前第几页
$prepage=5;//每页显示几条
//上一页下一页的传递需要保证变量有效
//复杂点可以通过判断$_POST['word']来判断是否是第一次提交等等,就看你自己的需要了
$keyword=empty($_POST['word']) ? $_GET['keyword'] : $_POST['word'];
$sphinx= new SphinxClient();
$sphinx->SetServer("localhost",9312);
$sphinx->SetMatchMode(SPH_MATCH_ANY);
$sphinx->SetLimits(($page-1)*$prepage,$prepage);//传递当前页面所需的数据条数的参数
$result=$sphinx->query("$keyword","*");
if($result['total']==0){
echo '没有结果,请重新搜索';
exit;
}
echo"<pre>";
print_r($result);
echo"</pre>";
if($page >1) echo '<a href="find.php?keyword='.$keyword.'&page='.($page-1).'">上一页</a><br />';
if($result['total']>($page*$prepage)) echo '<a href="find.php?keyword='.$keyword.'&page='.($page+1).'">下一页</a><br />';
?>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询