模糊查询分页
//查询数据通过分类名
public function byCateGet()
{
if ($this->is_token()!==1){
return $this->is_token();
}
$search=input('search');
if(input('category_title')){
$category_id = Db::table('project_category')
->where('category_title',input('category_title'))
->value('id');
if ($category_id==NULL){
return json_encode(['code'=>400,'msg'=>'该类型不存在']);
}
$data = Db::name($this->tableName)->where('category_id', $category_id)
->where('keyword|title','like','%' . $search . '%')
->select();
return json_encode($data);
}
$data = Db::name($this->tableName)->where('keyword|title','like','%' . $search . '%')
->select();
return json_encode($data);
}
子集查询
查询效果
代码实现
//查询所有分类
public function category_list()
{
$webData = new WebData();
$webData->header();
$status = $_SERVER['REQUEST_METHOD'];
if ($status != 'OPTIONS') {
$token = $_SERVER['HTTP_TOKEN'];
$is_token = $webData->is_token($token);
if ($is_token == 1) {
$category = db::name($this->categoryTable)
->order('sort asc')
->select();
$listData = db::name($this->listTable)
->order('is_top desc')
->select();
$category_item = [];
$list_item = [];
foreach ($category as $item) {
$category_item[$item['id']] = $item;
}
foreach ($listData as $item) {
$list_item[$item['id']] = $item;
}
foreach ($category_item as $item) {
$category_item[$item['pid']]['children'][] = &$category_item[$item['id']];
}
foreach ($list_item as $item) {
$category_item[$item['category_id']]['children'][] = &$list_item[$item['id']];
}
$a = [];
foreach ($category_item as $item) {
if (isset($item['id'])) {
if ($item['pid'] == 0) {
$a[] = $item;
}
}
}
return json_encode($a);
} else {
return json_encode($webData->getTokenError($token));
}
}
}
代码逻辑
初始化空数组 $category_item 和 $list_item。
使用两个循环遍历分类数据和列表数据,并将每个数据项以其 id 作为键存储到 $category_item 和 $list_item 数组中。
使用遍历循环将分类数据按照父子关系组织起来。首先,遍历 $category_item 数组,对于每个分类数据项,将其存储到其父分类的 children 数组中。这样可以将具有父子关系的分类数据组织在一起。
使用遍历循环将列表数据与所属的分类数据关联起来。遍历 $list_item 数组,对于每个列表数据项,将其存储到对应的分类数据的 children 数组中。
初始化空数组 $a。
再次遍历 $category_item 数组,对于每个分类数据项,判断其是否存在 id 字段,并且其父分类的 pid 为 0。如果满足条件,将该分类数据项存储到 $a 数组中。
使用 json_encode 方法将 $a 数组转换为 JSON 格式的字符串,并将其作为结果返回。