thinkphp框架多条件查询案例

直接上代码



$type_id = $_GET['typeid'] ?? ''; //父 ID
$subitem_id = $_GET['subitem'] ?? ''; //子 ID
$orderby = $_GET['orderby'] ?? ''; //排序方式 最新new 热度hot 点赞zan 收藏sc

$query = Db::name('ymtype'); // 初始查询

// 条件过滤
if (!empty($type_id)) {
    $query->where('parent_id', $type_id);
}
if (!empty($subitem_id)) {
    $query->where('id', $subitem_id);
}

// 排序
if (!empty($orderby)) {
    switch ($orderby) {
        case 'new':
            $query->order('created_at', 'desc');
            break;
        case 'hot':  //最热,download_log表 ym_id出现次数最多  ym_id就是ymtype的id。下面那个也一样
            $query->alias('y')
                  .leftJoin('download_log dl', 'y.id = dl.ym_id')
                  .field('y.*, COUNT(dl.ym_id) AS download_count')
                  .group('y.id')
                  .order('download_count', 'desc');
            break;
        case 'zan':
            $query->order('likes', 'desc');
            break;
        case 'sc':
            $query->alias('y')
                  .leftJoin('sc_log sl', 'y.id = sl.ym_id')
                  .field('y.*, COUNT(sl.ym_id) AS favorite_count')
                  .group('y.id')
                  .order('favorite_count', 'desc');
            break;
        default:
            $query->order('id', 'desc');  // 默认按 ID 降序
            break;
    }
}

// 执行查询
$subItem_data = $query->select();

posted @   79524795  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2023-04-20 PHP数组反转排序
2023-04-20 PHP数组合并
2021-04-20 TP6的跳转坑 和cmd报错 php版本和composer扩展坑
2021-04-20 TP5.1模板继承
点击右上角即可分享
微信分享提示