在数据透视表中渲染数百万行

时间:2018-05-28 02:25:44

标签: php pivot-table codeigniter-2

允许的内存大小为536870912字节耗尽(尝试分配117770705字节)

我正在使用codeigniter。我正在制作一个透视表仪表板,它将渲染数百万条记录。我已将php.ini中的memory_limit调整为1024M。我已经划分了我的查询以防止内存缓冲查询错误。这是我的控制器:

enter code here
$c = $this->stock_model->count_data();   
$count = $c[0]["c"];
$from_id= 1;
$to_id=100000;       
$data = '["BranchCode","rowid","BranchName","SBRDate", "ItemCode","ItemDesc","ItemPrice","ItemBalance","ItemAmount","ItemGroup","ItemCategory", "ItemLine"],';

while(intval($count) > 0){

  $view_report = $this->stock_model->view_report($from_id, $to_id);
            //var_dump($view_report);

  foreach ($view_report as $key => $value) {
     $data .= '["'.$value["BranchCode"].'",';
     $data .= '"'.$value["rowid"].'",';
     $data .= '"'.rtrim($value["BranchName"]).'",';
     $data .= '"'.$value["SBRDate"].'",';
     $data .= '"'.$value["ItemCode"].'",';
     $data .= '"'.str_replace('"','\"',rtrim($value["ItemDesc"])).'",';
     $data .= '"'.$value["ItemPrice"].'",';
     $data .= '"'.$value["ItemBalance"].'",';
     $data .= '"'.$value["ItemAmount"].'",';
     $data .= '"'.rtrim($value["ItemGroup"]).'",';
     $data .= '"'.rtrim($value["ItemCategory"]).'",';
     $data .= '"'.rtrim($value["ItemLine"]).'"],';
 }

 file_put_contents("assets/textfile/test1.min.js","$.myArray = [".$data."];");
 $from_id = intval($from_id) + 100000;
 $to_id =intval($to_id) + 100000;
 $count = intval($count) - 100000;
 }

 $this->load->view('stock_view');

我的模型只是对所有记录的选择查询。

脚本已成功呈现,但数据透视表未显示。它现在加载了一个多小时。没有错误显示。而且我担心如果数据增加他就不会成功。即使行增加,如何以最简单的方式呈现数百万行而不会达到限制。请帮忙。

0 个答案:

没有答案