关于php多条件模糊查询后分页问题!

/*分页------------------------------------------------------------------------*/
$page = $_GET['page']; //取得url参数
$count = "select count(*) from oems_device_baseinfo";
$rs = $db->fetch($count);
$totalNumber=$rs['count(*)']; //总记录条数
$perNumber = 10;
$totalPage=ceil($totalNumber/$perNumber); //总页数
if ($page<=1 && empty($page)) {
$page=1; //刚进来时赋初值1
}
$startCount=($page-1)*$perNumber;
/*搜索------------------------------------------------------------------------*/
$look_type = $_GET['type'];
$look_status = $_GET['status'];
$look_coder = $_GET['coder'];
$lookup = "select * from oems_device_baseinfo";
if(!empty($look_type)){
$lookup .= " where type like '%$look_type%'";
if(!empty($look_status)){
$lookup .= " and status = $look_status";
}
}else if(!empty($look_status)){
$lookup .= " where status like $look_status";
}else if(!empty($look_coder)){
$look=addslashes($look_coder);
$look=trim($look_coder);
$lookup .= " where coder like '%$look_coder%'";
}
$lookup .= " order by did desc limit $startCount,$perNumber ";
//$result = "select * from oems_device_baseinfo order by did desc limit $startCount,$perNumber";
$db->results($lookup);
以上是php分页及搜索代码

<select name='type'>
<option value=''>--设备类型--</option>
<?php
foreach($type_arr as $key=>$val){
?>
<option value='<?=$key?>'><?=$val?></option>
<?php
}
?>
</select>    
</td>
<td width='130'>
<select name='status'>
<option value=''>--设备状态--</option>
<?php
foreach($device_status_arr as $key=>$val){
?>
<option value='<?=$key?>'><?=$val?></option>
<?php
}
?>
</select>
以上是多条件模糊查询,显示在页面上的

<tr align="right" bgcolor="#EEF4EA">
<td height="36" colspan="14" align="center">
<?php
echo "当前第<".$page.">页";
if ($page != 1) { //当当前页不是第一页时`显示上一页
?>
<a href="device_list.php?page=<?php echo $page - 1;?>">上一页</a>
<?php
}
for ($i=1;$i<=$totalPage;$i++) { //输出第123456页
echo "<a href=\"device_list.php?page=$i\" >$i <a>";
}
if ($page<$totalPage) //如果当前页小于最大页`显示下一页
{
$page=$page+1;
echo "
<a href=\"device_list.php?page=$page\">下一页<a>";
}
?>
</td>
</tr>
以上是显示在页面上的分页代码? 目前可以正常分页,可是我做了多条件查询后却不只该怎么显示出搜索后的记录分页; 希望高手给予指点!!小弟在此多谢了;
能具体一点吗,拿我的代码为例,举个实例!

<?php
define('IN_JOBS', true);
require_once("./cc_include/common.php");
require_once("./cc_include/page.class.php");
require_once("./cc_include/page_function.php");

require_once("./cc_include/Site_Config.php");

//加载smarty模板
$smarty = new Smarty();
$smarty->template_dir="./templates/default/";
$smarty->compile_dir="./templates_c/default/";
$smarty->cache_dir=CACHE_PATH;
$smarty->left_delimiter="{*";
$smarty->right_delimiter="*}";
$smarty->caching=false;
//开始跑首页信息
$Gonggao=News(1, 5);
//以上信息为公告和右侧的两个新闻

if (isset($_GET['sousuo'])) $searchname = $_GET['sousuo'];//得到搜索关键词
else if (isset($_POST['sousuo'])) $searchname = $_POST['sousuo'];

if(!isset($searchname))
{
echo "<script>location.href='index.php';</script>";
}
$typename=$_POST['type'];
$shijian=$_POST['rboname'];
$xitongshijian=date("Y-m-d");//获得系统当前时间
$jianyitian=date('Y-m-d H:i:s',strtotime("$a-1 day"));//减去一天时间

$jiansantian=date('Y-m-d',strtotime("$a-3 day"));//减去三天时间

$jianqitian=date('Y-m-d',strtotime("$a-7 day"));//减去7天时间

switch($typename)
{
case "职位名":
if($shijian=="")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' order by Adddate desc";

}
else if($shijian=="近一天")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jianyitian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近三天")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jiansantian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近一星期")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jianqitian."' and '".$xitongshijian."' order by Adddate desc";
}
break;
case "工作时间":
if($shijian=="")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' order by Adddate desc";
}
else if($shijian=="近一天")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jianyitian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近三天")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jiansantian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近一星期")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jianqitian."' and '".$xitongshijian."' order by Adddate desc";
}
break;
}

$perNumber=5; //每页显示的记录数
$page=$_GET['page']; //获得当前的页面值
$count=mysql_query("select count(*) from ejz_wor where ".$tiaojian.""); //获得记录总数

$rs=mysql_fetch_array($count);
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber); //计算出总页数
if (!isset($page)) {
$page=1;
} //如果没有值,则赋值1
$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录
$sql="select Wor_id,Gzxx,Zprs,Gzsj,Gzyq,Daiyu,Adddate,jipin from ejz_wor where ".$tiaojian." limit $startCount,$perNumber";
$result=mysql_query($sql);
while ($row=mysql_fetch_object($result))
{
?>
<ul>
<li><div class="kf_xian" align="left"><? echo "$row->Gzxx"?> <a href="#" style="text-align:left"><? echo "$row->Gzsj"?></a></div></li>
<li><? echo "$row->Daiyu"?></li>
<li>管理员回复:<? echo "$row->Adddate"?></li>
</ul>
<?
}
if ($page != 1) { //页数不等于1
?>

<?php echo "总共".$totalPage."页,";?>
<a href="wj.php?page=<?php echo $page - 1;?>&sousuo=<?php echo $searchname;?>">上一页</a> <!--显示上一页-->
<?php
}
for ($i=1;$i<=$totalPage;$i++) { //循环显示出页面
?>
<a href="wj.php?page=<?php echo $i;?>&sousuo=<?php echo $searchname;?>"><?php echo $i ;?></a>
<?php
}
if ($page<$totalPage) { //如果page小于总页数,显示下一页链接
?>
<a href="wj.php?page=<?php echo $page + 1;?>&sousuo=<?php echo $searchname;?>">下一页</a>
<?php
}
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-29
<?php
define('IN_JOBS', true);
require_once("./cc_include/common.php");
require_once("./cc_include/page.class.php");
require_once("./cc_include/page_function.php");

require_once("./cc_include/Site_Config.php");

//加载smarty模板
$smarty = new Smarty();
$smarty->template_dir="./templates/default/";
$smarty->compile_dir="./templates_c/default/";
$smarty->cache_dir=CACHE_PATH;
$smarty->left_delimiter="{*";
$smarty->right_delimiter="*}";
$smarty->caching=false;
//开始跑首页信息
$Gonggao=News(1, 5);
//以上信息为公告和右侧的两个新闻

if (isset($_GET['sousuo'])) $searchname = $_GET['sousuo'];//得到搜索关键词
else if (isset($_POST['sousuo'])) $searchname = $_POST['sousuo'];

if(!isset($searchname))
{
echo "<script>location.href='index.php';</script>";
}
$typename=$_POST['type'];
$shijian=$_POST['rboname'];
$xitongshijian=date("Y-m-d");//获得系统当前时间
$jianyitian=date('Y-m-d H:i:s',strtotime("$a-1 day"));//减去一天时间

$jiansantian=date('Y-m-d',strtotime("$a-3 day"));//减去三天时间

$jianqitian=date('Y-m-d',strtotime("$a-7 day"));//减去7天时间

switch($typename)
{
case "职位名":
if($shijian=="")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' order by Adddate desc";

}
else if($shijian=="近一天")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jianyitian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近三天")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jiansantian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近一星期")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jianqitian."' and '".$xitongshijian."' order by Adddate desc";
}
break;
case "工作时间":
if($shijian=="")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' order by Adddate desc";
}
else if($shijian=="近一天")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jianyitian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近三天")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jiansantian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近一星期")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jianqitian."' and '".$xitongshijian."' order by Adddate desc";
}
break;
}

$perNumber=5; //每页显示的记录数
$page=$_GET['page']; //获得当前的页面值
$count=mysql_query("select count(*) from ejz_wor where ".$tiaojian.""); //获得记录总数

$rs=mysql_fetch_array($count);
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber); //计算出总页数
if (!isset($page)) {
$page=1;
} //如果没有值,则赋值1
$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录
$sql="select Wor_id,Gzxx,Zprs,Gzsj,Gzyq,Daiyu,Adddate,jipin from ejz_wor where ".$tiaojian." limit $startCount,$perNumber";
$result=mysql_query($sql);
while ($row=mysql_fetch_object($result))
{
?>
<ul>
<li><div class="kf_xian" align="left"><? echo "$row->Gzxx"?> <a href="#" style="text-align:left"><? echo "$row->Gzsj"?></a></div></li>
<li><? echo "$row->Daiyu"?></li>
<li>管理员回复:<? echo "$row->Adddate"?></li>
</ul>
<?
}
if ($page != 1) { //页数不等于1
?>

<?php echo "总共".$totalPage."页,";?>
<a href="wj.php?page=<?php echo $page - 1;?>&sousuo=<?php echo $searchname;?>">上一页</a> <!--显示上一页-->
<?php
}
for ($i=1;$i<=$totalPage;$i++) { //循环显示出页面
?>
<a href="wj.php?page=<?php echo $i;?>&sousuo=<?php echo $searchname;?>"><?php echo $i ;?></a>
<?php
}
if ($page<$totalPage) { //如果page小于总页数,显示下一页链接
?>
<a href="wj.php?page=<?php echo $page + 1;?>&sousuo=<?php echo $searchname;?>">下一页</a>
<?php
}
?>
第2个回答  2010-11-05
只需要把你的所查询的参数放到 分页中就可以了!device_list.php?page=$i& (在这加查询参数)本回答被提问者采纳
第3个回答  2010-11-04
把你要查询的参数构成一个url.php?a=aa&b=bb&c=www.111cn.net
这种,再利用php获取查询分页就KO了。
第4个回答  2010-11-03
你在分页时,应该把多条件查询的条件,也就是参数一同通过变量传递下去。