多条件查询和分页

三个条件查询,两个下拉菜单,一个输入的。怎么根据三个条件来查询结果,并且分页的时候,还要带上查询条件。PHP+smary实现... 三个条件查询,两个下拉菜单,一个输入的。
怎么根据三个条件来查询结果,并且分页的时候,还要带上查询条件。
PHP+smary实现
展开
 我来答
miniapp16d92224d6c6
2013-11-21 · 超过33用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:71.7万
展开全部
//分页函数
//定义函数pageft(),三个参数的含义为:
//$totle:信息总数;
//$displaypg:每页显示信息数,这里设置为默认是20;
//$url:分页导航中的链接,除了加入不同的查询信息“page”外的部分都与这个URL相同。
//   默认值本该设为本页URL(即$_SERVER["REQUEST_URI"]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页URL。
function pageft($totle, $displaypg = 20, $url = '', $shownum = 1, $showtext = 1, $showselect = 0, $showlvtao = 7) {
    if(empty($totle)){
        return false;
    }
    $page = isset($_GET['page'])?intval($_GET['page']):1;
    
    $url.='/page/';

    //页码计算:
    $lastpg = ceil($totle / $displaypg); //最后页,也是总页数
    $page = min($lastpg, $page);
    $prepg = $page -1; //上一页
    $nextpg = ($page == $lastpg ? 0 : $page +1); //下一页
    $firstcount = ($page -1) * $displaypg;

    //开始分页导航条代码:
    if ($showtext == 1) {
        $pagenav = '<div class="results"><span>第 ' . ($totle ? ($firstcount +1) : 0) . '-' . min($firstcount + $displaypg, $totle) . ' 条 共 '.$totle.'</span></div><div><ul class="pager">';
    } else {
        $pagenav = "";
    }
    //如果只有一页则跳出函数:
    //if ($lastpg <= 1)
        //return false;

    if ($prepg)
        $pagenav .= '<li><a href="'.$url.$prepg.'">&laquo; 上一页</a></li>';
    else
        $pagenav .= '<li class="disabled">&laquo; 上一页</li>';

    if ($shownum == 1) {
        $o = $showlvtao; //中间页码表总长度,为奇数
        $u = ceil($o / 2); //根据$o计算单侧页码宽度$u
        $f = $page - $u; //根据当前页$currentPage和单侧宽度$u计算出第一页的起始数字
        //str_replace('{p}',,$fn)//替换格式
        if ($f < 0) {
            $f = 0;
        } //当第一页小于0时,赋值为0
        $n = $lastpg; //总页数,20页
        if ($n < 1) {
            $n = 1;
        } //当总数小于1时,赋值为1
        if ($page == 1) {
            $pagenav .= '<li class="current">1</li>';
        } else {
            $pagenav .= '<li><a href="'.$url.'1">1</a></li>';
        }
        ///////////////////////////////////////
        for ($i = 1; $i <= $o; $i++) {
            if ($n <= 1) {
                break;
            } //当总页数为1时
            $c = $f + $i; //从第$c开始累加计算
            if ($i == 1 && $c > 2) {
                $pagenav .= '<li class="separator">...</li>';
            }
            if ($c == 1) {
                continue;
            }
            if ($c == $n) {
                break;
            }
            if ($c == $page) {
                $pagenav .= '<li class="current">' . $page . '</li>';
            } else {
                $pagenav .= '<li><a href="'.$url.$c.'">'.$c.'</a></li>';
            }
            if ($i == $o && $c < $n -1) {
                $pagenav .= '<li class="separator">...</li>';
            }
            if ($i > $n) {
                break;
            } //当总页数小于页码表长度时
        }
        if ($page == $n && $n != 1) {
            $pagenav .= '<li class="current">' . $n . '</li>';
        } else {
            if ($lastpg > 1){
                $pagenav .= '<li><a href="'.$url.$n.'">'.$n.'</a></li>';
            }
        }
    }

    if ($nextpg)
        $pagenav .= '<li><a href="'.$url.$nextpg.'">下一页 &raquo;</a></li>';
    else
        $pagenav .= '<li class="disabled">下一页 &raquo;</li>';
        
    $pagenav .= '</ul></div>';
    
    if ($showselect == 1) {
        //下拉跳转列表,循环列出所有页码:
        $pagenav .= "跳至<select name='topage' size='1' onchange='window.location=\"$url\"+this.value'>\n";
        for ($i = 1; $i <= $lastpg; $i++) {
            if ($i == $page)
                $pagenav .= "<option value='$i' selected>$i</option>\n";
            else
                $pagenav .= "<option value='$i'>$i</option>\n";
        }
        $pagenav .= "</select>页";
    }
    return $pagenav;
}
//数据查询页面
$page = array();
        $page['url'] = U('Supervise/myefficiencybooklist',array('Status'=>$_GET['Status']));
        $page['pagesize'] = 16;
        $page['frmnum'] = ($pagenum-1)*$page['pagesize'];
        $Efficiencybook = M('efficiencybook','app_yhcm_supervise_');
        $totle = $Efficiencybook->where('uid = '.$this->_G['userid'].$where)->count();
        $page['totle'] = $totle;
        $this->assign('page',$page);//将分页参数复制给模版变量

{:pageft($page['totle'],$page['pagesize'],$page['url'])}


以上是我一个项目里面用到的  你适当的改下就能用了

曹晓山11
2015-07-11 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52066
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

通用的多条件查询(带分页)的SQL语句如下:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_PageQuery]
     @pageSize int=20,
     @SortFile varchar(50)='',
     @SortType varchar(20)='asc',
     @QuerySQL varchar(8000),
     @PageIndex int=1,
     @Total int output
AS
BEGIN
     declare @SQL nvarchar(4000),@SQLTotal nvarchar(4000)
     set @SQLTotal='select @Total=count(*) from ('+@QuerySQL +') as totaltable'
     exec sp_executesql @SQLTotal,N'@Total int OUTPUT',@Total OUTPUT
     set @SQL='SELECT TOP '+CAST(@pageSize as varchar)+' * '
           +'FROM '
    +'( '
         +' SELECT ROW_NUMBER() OVER ('
      if @SortFile<>''
            set @SQL=@SQL+' ORDER BY '+@SortFile+' '+@SortType
      set @SQL=@SQL +' ) as RowNO,*' 
  +' FROM ( '+@QuerySQL+') as DataTable'
  +' ) as PageTable '
  +'WHERE ROWNO>'+CAST( (@PageIndex-1)*@pageSize as nvarchar)
      exec (@SQL) 
END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
影翼视觉lyl
2013-11-27 · TA获得超过630个赞
知道小有建树答主
回答量:1279
采纳率:50%
帮助的人:678万
展开全部
额,这个好像可以在sql语句加入条件,就是 要同时满足三个条件,sql="select * form biao where name1='$name1' and name2='$name2' and name3='$name3'"这样应该可以查出来,你试试吧,我没测试过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果然没昵称
2013-11-21 · TA获得超过3024个赞
知道小有建树答主
回答量:739
采纳率:50%
帮助的人:248万
展开全部
连接
if($params['ss']){
$where .= " and a= '".$params['ss']."' ";
}
if($params['bb']){
$where .= " and b= '".$params['bb']."' ";
}
$sql = "select * from xx where 1 $where";
追问
分页的时候,参数怎么传递,我点下一页的时候搜索的条件参数也要传递出去,我是写在url,但是看起来很长,三个参数,加上page四个参数了,很长的,有木有其他办法?
追答
pagebar
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式