如何使用mysql在codeigniter中计算总数

Posted

技术标签:

【中文标题】如何使用mysql在codeigniter中计算总数【英文标题】:how to calculate total in codeigniter using mysql 【发布时间】:2016-05-05 08:23:28 【问题描述】:

这是我要计算总数的数据库

$this->db->select('*');
    $this->db->select_sum('total_sale');
    $query = $this->db->get('one_month_report');
    if ($query->num_rows() > 0) 
        return $query->result();
     else 
        return FALSE;
    

【问题讨论】:

您好 - 请用更多上下文来扩展您的问题! 我在数据库中的数字是 total_sale 1)12,478。 2)20, 3)10 但它只返回 42 12,478 这里有 478 个值无法计算 听起来您在数据库中的列是 Varchar 类型,而不是整数。 感谢 MackieeE 快速回复它是 varchar 但仍然 【参考方案1】:

如果你不想选择总和。制作类似的文档 https://www.codeigniter.com/userguide3/database/query_builder.html

$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE);
$query = $this->db->get('mytable');

【讨论】:

【参考方案2】:

使用NumberFormatter 类来解析特定于语言环境的数字。

但要使用它,您需要 PHP 版本 >= 5.3intl 扩展版本 >= 1.0

如果有,请从php.ini 中取消注释此行extension=php_intl.dll(如果有注释)。

并将其用作以下示例:

<?php
    $num1 = '12,478.76';
    $nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL);

    var_dump($nf->parse($num1));

    // output: float(12478.76) 
   // it will automatically parse int, double,float etc.
?>

【讨论】:

以上是关于如何使用mysql在codeigniter中计算总数的主要内容,如果未能解决你的问题,请参考以下文章

如何在codeigniter中的用户之间分配总资金

如何使用codeigniter 4框架在mysql数据库中插入多行?

Codeigniter Active Record - 计算找到的总行数(MySQL)

如何计算从 MySQL 查询返回的总结果有限制?

如何在 codeigniter 模型中使用 mysql 事件调度程序

如何在codeigniter中使用ajax在mysql数据库中插入数据?