首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Codeigniter中使用特定属性对数据库中的所有用户进行计数

如何在Codeigniter中使用特定属性对数据库中的所有用户进行计数
EN

Stack Overflow用户
提问于 2015-09-29 08:55:41
回答 1查看 931关注 0票数 0

我有一张为经销商和用户准备的桌子。现在每个经销商都有自己的用户。每个用户都通过一个名为key的字段映射到该分销商。因此,每个用户都将有一个名为key的字段,其中将保存分销商的密钥。

现在我有了一个叫做分配块的文件。这是经销商所能拥有的最大用户数。现在,一个分销商有100个用户的分配块,但最初只插入10个用户。因此,我想打印剩余的用户,他可以添加。所以分配块-intitals_user。这将是100-10等经销商登录,我想显示多少用户,他可以添加。

请帮助我生成一个查询,以计数剩余的用户他可以利用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-29 20:22:40

让我们分几步进行:假设我们正在与表中的分销商Zalak合作,该表的allocation_block大小为500,密钥为Zalak-+76-6-500-1,id为6

查找分销商的用户数量

代码语言:javascript
运行
复制
SELECT COUNT(*) AS CurrentUserTotal FROM Users WHERE key = 'Zalak-+76-6-500-1';

查找该分销商的allocation_block值

代码语言:javascript
运行
复制
SELECT allocation_block AS AllowedUserTotal FROM Resellers WHERE id '6';

把它们放在一起,同时将两者结合起来

代码语言:javascript
运行
复制
SELECT 
    COUNT(u.*) AS CurrentUserTotal, 
    r.allocation_block AS AllowedUserTotal 
FROM Users u 
JOIN Resellers r 
    ON (u.key = r.key) 
WHERE r.id = '6';

做数学计算,得到你想要的价值

代码语言:javascript
运行
复制
SELECT 
    COUNT(u.*) AS CurrentUserTotal, 
    r.allocation_block AS AllowedUserTotal,
    SUM(AllowedUserTotal - CurrentUserTotal) AS RemainingUserTotal
FROM Users u 
JOIN Resellers r 
    ON (u.key = r.key) 
WHERE r.id = '6';

把所有的都放在一起

使用CI,您现在可以这样做:

代码语言:javascript
运行
复制
public function getRemainingAllowedUsers( $reseller_id ) {

    $SQL = "
        SELECT 
            COUNT(u.*) AS CurrentUserTotal, 
            r.allocation_block AS AllowedUserTotal,
            SUM(AllowedUserTotal - CurrentUserTotal) AS RemainingUserTotal
        FROM Users u 
        JOIN Resellers r 
            ON (u.key = r.key) 
        WHERE r.id = '" . $reseller_id . "';
    ";
    $query = $this->db->query($SQL);
    $result = $query->row();

    $current_users   = $result->CurrentUserTotal;
    $allowed_users   = $result->AllowedUserTotal;
    $remaining_users = $result->RemainingUserTotal;

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32839806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档