2011-04-28 28 views
0

這是我的模型。我不確定我是否在正確的軌道上,但這是一個開始。我在我的網站上有一個調查表,所有的值都是INT字段中的數字。我想計算10列中的每一列的平均值。與其單獨計算每個結果,我想知道是否有方法使用循環來處理結果。所以這裏是:如何在CodeIgniter中處理結果數組

function survey_averages() { 

     $q = array(
        '1' => 'q1', 
        '2' => 'q2', 
        '3' => 'q3', 
        '4' => 'q4', 
        '5' => 'q5', 
        '6' => 'q6', 
        '7' => 'q7', 
        '8' => 'q8', 
        '9' => 'q9', 
        '10' => 'q10' 
        ); 


     for ($i=1; $i<11; $i++) { 
      $this->db->select_avg($q[$i]); 
      $query[$i] = $this->db->get('survey'); 
     } 

     return $query; 

    } 

如果我在正確的軌道上,那麼我該如何找回數組的結果?如果我走錯了路,我需要改變什麼?此外,如果我在我的控制器中執行此操作:

foreach($query->result_array() as $row) { 

如何返回我的數組的行? PHP不讓我做$ row-> 1或$ row - >'1'。

+0

不確定自己的查詢質量,但你應該嘗試從get()返回結果如下:'$ query [$ i] = $ this-> db-> get('survey') - >結果(); ' – 2011-04-28 22:28:09

回答

0

嘗試var_dump($query->result_array())

+0

嗨tpae,可能是你的建議不起作用,$查詢是查詢的數組,而不僅僅是一個查詢。看$ query [$ i] = ... – 2011-04-29 09:16:49

+0

@Carlos Mora:var_dump也顯示數組。顯示關於該變量的所有信息。 http://php.net/manual/en/function.var-dump.php – tpae 2011-05-03 01:59:28

0

代替

$query[$i] = $this->db->get('survey');

嘗試

$query[$i] = $this->db->get('survey')->result_array();

那麼,proccess模型的結果,你應該做的:

foreach($query as $result) 
    foreach($result as $row){ 
     // process $row 
    }