Php 我们如何计算codeigniter的月销售额?

Php 我们如何计算codeigniter的月销售额?,php,mysql,codeigniter,Php,Mysql,Codeigniter,我对Codeigniter中的一些计算有问题。请检查下面的图片 从数据库中获取的数据,销售栏是好的,但我有每月销售的问题 每月的第一天销售(10)和每月销售(10)是相同的,但从第二天销售是正确的(8),每月销售必须是第一天销售+第二天销售(10+8=18)。第三天的销售可以,每月的销售应该是(18+20=38)。截至本月底的计算是这样的,从下个月开始,同样的过程会再次说明 我们如何在codeigniter中计算,上面的图片是我在excel表格中创建的,用于演示 模型视图 public

我对Codeigniter中的一些计算有问题。请检查下面的图片

从数据库中获取的数据,销售栏是好的,但我有每月销售的问题

每月的第一天销售(10)和每月销售(10)是相同的,但从第二天销售是正确的(8),每月销售必须是第一天销售+第二天销售(10+8=18)。第三天的销售可以,每月的销售应该是(18+20=38)。截至本月底的计算是这样的,从下个月开始,同样的过程会再次说明

我们如何在codeigniter中计算,上面的图片是我在excel表格中创建的,用于演示

模型视图

    public function fetchSaleData()
{
    $this->db->join('stock_shop','stock_shop.shop_id = stock_sale.shopId');
    $this->db->join('stock_products','stock_products.product_id = stock_sale.productID');
    $thisMonth=date('m');
    $this->db->where('MONTH(DateOfSale)',$thisMonth);  
    $query= $this->db->get("stock_sale");
    return $query->result_array();
}
控制器视图

public function salesView()
    {
        $data['sales']=$this->Query_sale->fetchSaleData();
        $data['shops']=$this->Query_sale->fetchShop();
        $this->load->view('stock/shop_sales_view',$data);

    }

由于您没有显示表结构或任何其他见解,因此我将仅建议一种基于我自己的代码的方法,您可以根据自己的具体需求自由调整该方法,以及我在此过程中所做的假设

假设#1:模型返回一个数组,其中每个元素包含日期和该日期的售出单位

这看起来像这样

+-----------------+
|    array data   |
+------------+----+
| 2020-01-01 | 10 |
+------------+----+
| 2020-01-02 | 20 |
+------------+----+
| 2020-01-03 |  5 |
+------------+----+
| 2020-01-04 |  8 |
+------------+----+
在数组形式上,这可能如下所示:

$ar = array(
    0 => array(
        'date'          => '2020-01-01',
        'units_sold'    => 10,
    ),

    1 => array(
        'date'          => '2020-01-02',
        'units_sold'    => 20,
    ),

    2 => array(
        'date'          => '2020-01-03',
        'units_sold'    => 5,
    ),

    3 => array(
        'date'          => '2020-01-04',
        'units_sold'    => 8,
    ),
);
一直到月底。让我们调用返回的字段
date
units\u salled
,如上例所示

现在,您已经将数据加载到变量(
$ar
)中,您可以对其进行循环,并对每个循环的累计总数进行制表

$accum = 0; // keep track of accumulated total
$i = 0; // keep track of array index

foreach ($ar as $a)
{
    $accum += $a['sales'];
    $ar[$i]['accum'] = $accum;
    $i++;
}
运行时,此代码将:

  • 迭代0:2020-01-01,销售额=10,累计=10
  • 迭代1:2020-01-02,销售额20,累计=30
  • 迭代2:2020-01-03,销售额5,累计=35
  • …等等,直到这个月结束
可以使用
print\r
var\u dump
(我使用print\r…如下:
print print\r($ar,true);
):

打印输出

Array
(
    [0] => Array
        (
            [date] => 2020-01-01
            [sales] => 10
            [accum] => 10
        )

    [1] => Array
        (
            [date] => 2020-01-02
            [sales] => 20
            [accum] => 30
        )

    [2] => Array
        (
            [date] => 2020-01-03
            [sales] => 5
            [accum] => 35
        )

    [3] => Array
        (
            [date] => 2020-01-04
            [sales] => 8
            [accum] => 43
        )

)

因此,现在您已经成功地在结果数组中推送了一个全新的元素,您可以将它发送到视图中,并根据需要以表格形式显示它

我想获取所有行数,然后使用phpCan您可以详细说明一下吗?请参阅: