thinkphp查询功能
本文是2个查询,希望能帮助有需要的朋友
【1】是针对同一个数据表,没有上级id
【2】是针对同一个数据表,有上级id
进入正题。。。。直接开搞
一、创建路由
//我实在后台查询,所有在admin模块下
Route::get('search','admin/Search/index');
二、创建控制器
public function index()
{
$keywords = input('keywords');//获取输入得关键词
if($keywords){
$map['ka_name']=['like','%'.$keywords.'%'];//模糊查询
$search = Db('information')->order('create_time desc')->where($map)->paginate(10,false,$config=['query'=>array('keywords'=>$keywords)]); //第一种查询,没有上级ID,并且分页
$this->assign(array(
'search'=>$search,
'keywords'=>$keywords,
));
}
$this->assign(array(
'keywords'=>$keywords,
));
return view();
}
三、html
<form action="{:url('/search')}" method="get" style="float:right">
<div class="layui-input-inline">
<input type="text" name="keywords" lay-verify="required" placeholder="请输入关键字词" class="layui-input">
</div>
<input name="Submit" class="layui-btn" value="搜索" type="submit">
</form>
四、新建一个搜索页面,去复制首页即可,都一样(我直接复制全套代码了)
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">
<button class="layui-btn layui-btn-danger" onclick="member_dell(this)" href="javascript:;" >
<i class="layui-icon"></i>批量删除</button>
<a class="layui-btn" onclick="xadmin.open('添加','{:url('/admin/information/create')}',850,600)" >
<i class="layui-icon"></i>添加</a>
<i style="float:right">
<form action="{:url('/search')}" method="get" style="float:right">
<div class="layui-input-inline">
<input type="text" name="keywords" lay-verify="required" placeholder="请输入关键字词" class="layui-input">
</div>
<input name="Submit" class="layui-btn" value="搜索" type="submit">
</form>
</i>
<div class="layui-input-inline">
<i><h3>搜索<b style="color:red">【{$keywords}】</b></span>的结果</h3> </i>
</div>
</div>
<div class="layui-card-body ">
<table class="layui-table layui-form" style="table-layout:fixed">
<thead>
<tr>
<th style="width:30px">ID</th>
<th>名字</th>
<th>选号</th>
<th>身份证号码</th>
<th>地址</th>
<th>添加时间</th>
<th>操作</th></tr>
</thead>
<tbody>
{if condition= "$keywords neq null "}
{volist name="search" id="vo"}
<tr>
<td>{$vo.id}</td>
<td>{$vo.ka_name}</td>
<td>{$vo.ka_phone}</td>
<td>{$vo.ka_id}</td>
<td>{$vo.ka_address}</td>
<td>{$vo.create_time|date='Y-m-d H:i:s',###}</td>
<td class="td-manage">
<a title="编辑" onclick="xadmin.open('编辑','{:url('/admin/information/'.$vo.id.'/edit')}',850,600)" >
<i class="layui-icon"></i></a>
<a title="删除" onclick="member_del(this,'{$vo.id}')" href="javascript:;">
<i class="layui-icon"></i></a>
</td>
</tr>
{/volist}
{else/}
<b>没有搜索关键词!</b>
<b>请输入你要搜索的关键词!</b>
{/if}
</tbody>
</table>
</div>
</div>
{if condition= "$keywords neq null "}
<div > {$search->render()}</div>
{/if}
</div>
第一种结束
第二种,针对上级id得
public function index()
{
$keywords = input('keywords');
if($keywords){
$map['title']=['like','%'.$keywords.'%'];
$search = Db('article')->alias('a')->join('cate c' ,'a.cat_id=c.cid')->field('c.cid,c.name,a.id,a.cat_id,a.title,a.describe,a.author,a.create_time,a.pic')
->order('id asc')->where($map)->paginate(10,false,$config=['query'=>array('keywords'=>$keywords)]);
$this->assign(array(
'search'=>$search,
'keywords'=>$keywords,
));
}
$this->assign(array(
'keywords'=>$keywords,
));
return view();
}
重点:其余都一样,控制器查询条件不同