2014-10-07 28 views
0

我想從數據庫中檢索高圖的分類。類別只是與圖表中的數據對應的月份。如何使用codeigniter從數據庫獲取高分類的類別

型號功能

function getMonthlySumOrders() 
{ 
    $this->db->select("SUM(price_each*quantity) AS sum_monthly_price, DATE_FORMAT(job.order_date, '%M') AS 'order_date', customer.company_name", false); 
    $this->db->join('job', 'job.job_id = job_details.job_id'); 
    $this->db->join('customer', 'customer.company_id = job.company_id'); 
    $this->db->where('job.company_id', '6'); 
    $this->db->where('job.order_date >=', date("m")); 
    $this->db->group_by('MONTH(job.order_date)'); 
    $this->db->order_by("job.order_date", "desc"); 
    $this->db->limit(4); 
    $query = $this->db->get('job_details'); 

return $query->result_array(); 
} 

控制器

public function __construct(){ 
    parent::__construct(); 
    $this->load->model('customer_model'); 
} 

function index(){ 

$data = $this->customer_model->getMonthlySumOrders(); 

foreach ($data as $order_sum_array) { 
      $order_sum['sum_monthly_price'][] = $order_sum_array['sum_monthly_price']; 
      $categories['month'][] = $order_sum_array['order_date']; 
     } 

$order_sum_data[] = array('name' => 'Company', 'data' => $order_sum['sum_monthly_price']); 
$categories_data[] = $categories['month']; 
$this->view_data['order_sum_data'] = json_encode($order_sum_data, JSON_NUMERIC_CHECK); 
$this->view_data['categories_data'] = json_encode($categories_data, JSON_NUMERIC_CHECK); 

$this->load->view('chart', $this->view_data); 
} 

查看腳本

$(function() { 
$('#container').highcharts({ 
    chart: { 
     type: 'column' 
    }, 
    title: { 
     text: 'Monthly Orders' 
    }, 
    subtitle: { 
     text: '' 
    }, 
    xAxis: { 
    categories: <?php echo $categories_data ;?> 
    }, 
    yAxis: { 
     min: 0, 
     title: { 
      text: 'Orders' 
     } 
    }, 
    tooltip: { 
     headerFormat: '<span style="font-size:10px">{point.key}</span><table>', 
     pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' + 
      '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>', 
     footerFormat: '</table>', 
     shared: true, 
     useHTML: true 
    }, 
    plotOptions: { 
     column: { 
      pointPadding: 0.2, 
      borderWidth: 0 
     } 
    }, 
    credits: { 
     enabled: false 
    }, 
    series: <?php echo $order_sum_data ;?> 
}); 
}); 
    </script> 

所以對於日數據e圖表'$ order_sum_data'工作並顯示在圖表上,但所有類別都放入圖表的第一個欄中。 如果我回顯$ order_sum_data。 $ categories_data我得到:

[{"name":"Company","data":[12209.8,2490,5109,4065]}] [["September","August","July","June"]] 

我可以看到周圍有類兩個方括號,但不知道如何減少到需要一組。

我還需要在我的模型中選擇的公司名稱附加到order_sum數組名稱組件。目前它只是硬編碼爲「公司」。

在另一個問題上,如果沒有特定月份的訂單,我的查詢將不會顯示0,如果沒有找到具有相應月份類別的特定月份的結果,我將如何安排if語句以顯示0高度列?

非常感謝您的幫助。

回答

0

分類問題:

  • 你有一個數組的數組:[["September","August","July","June"]],而應該只是一個數組:["September","August","July","June"]

值爲0的問題:

公司名稱:

  • ,因爲你知道它是硬編碼的,那麼爲什麼只更換了一些變量,將有關於公司名稱的信息價值嗎?
+0

非常感謝您的回答,自從我發佈該問題以來,我已經多了一些。但是我認爲我仍然可能會走向錯誤的方向,於是在高層論壇上發佈了一個問題。雖然他們表示這不是高熱量問題,但我現在的代碼仍然在帖子中,如果你能夠看一看。 [鏈接] http://forum.highcharts.com/post109313.html#p109313這個問題似乎是,我沒有收到我的查詢任何價值,如果它是空的,我要求是0.請問這是minPointLength你建議? – 2014-10-09 13:40:45

+0

不,它不是。如果你沒有像他們說的那樣有價值,那麼什麼都不會顯示。你需要添加某種方式的價值。 – 2014-10-09 13:51:13

相關問題