2013-02-22 39 views
2

我有如下控制器,存儲值從陣列結果變量在笨

class mycontroller extends CI_Controller 
{ 
    public function getvalue() { 
     $q= $this->db->select(array('value')) 
          ->from('settting') 
          ->get(); 
     $data['data']= $q->result(); 
      $this->load->view('myview',$data); 
    } 

} 

筆者認爲:

的print_r($數據);

給出了這樣的

Array ([0] => stdClass Object ([value] => wwwwwwwwwwww) [1] => stdClass Object ([value] => 5454546) [2] => stdClass Object ([value] => 6868) [3] => stdClass Object ([value] => 9898) [4] => stdClass Object ([value] => 7878) [5] => stdClass Object ([value] => 212) [6] => stdClass Object ([value] => 87878) [7] => stdClass Object ([value] => 8989) [8] => stdClass Object ([value] => 212)) 

輸出我試圖存儲在變量

當我使用每個單獨的值,

foreach($data as $row) 
{ 
    echo $row->value; 
} 

它給我所有的價值,但我需要保存每個值都在變量中。

我怎麼能做到這一點, 這樣,

$var1='wwwwwwwwwwww'; // [0 ] array value 
$var2='5454546';  // [1] array value 

回答

4

更好地保存到另一個數組

$my_values = array(); 
foreach($data as $row) 
{ 
    $my_values[] = $row->value; 
} 

現在您有:

echo $my_values[0]; // wwwwwwwwwwww 
echo $my_values[1]; // 5454546 
0

你可以嘗試這樣的

class mycontroller extends CI_Controller 
{ 
    public function getvalue() { 
     $q = $this->db->select(array('value')) 
        ->from('settting') 
        ->get() 
        ->result_array(); 
     $i = 0; 
     foreach($q as $val) 
     { 
      ${'var' . ++$i} = $val['value']; // Here we put each value in new variable, with variable name var1, var2, ... 
     } 
     echo $var1; 
     echo $var2; 
     $this->load->view('myview',$data); 
    } 
} 
0

Look數組包含「stdClass Object」對象。所以你需要將對象轉換爲數組。所以轉換使用,

$data= $q->result(); 
$data['data']=$data->result_array(); or $data->row_array(); 
0

你循環通過結果與一些tempoarary變量來構造變量。但我不知道在單獨變量中存儲數組值的用途如何:-)

$i = 0; 
foreach($data as $row) 
{ 
    $var_.$i = $row->value; 
    $i++; 
} 
+0

:因爲價值來自單行「值」不是從行,我想在窗體打開文本框中顯示此值。 – Kango 2013-02-22 10:33:12

+0

希望上面的代碼有所幫助。 – Samy 2013-02-22 10:35:43

1

您的策略是完全錯誤的。你正在調用一個打破MVC規則的控制器的db調用。爲此創建一個模型。

Class Value Extends CI_Model{ 

function __construct(){ 
    parent::__construct(); 
} 

function getValue(){ 
return $this->db 
      ->select(array('value')) 
      ->from('settting') 
      ->get(); 
      ->result(); 

} 

現在把它從控制器

class mycontroller extends CI_Controller 
{ 
    $this->load->model('value'); 
    public function getvalue() { 

     $data['value']= $this->value->getValue(); 
     $this->load->view('myview',$data); 
    } 
} 

現在在視圖

foreach($value as $row) 
{ 
    echo $row; 
} 
4

當您打印查詢變量,

print_r($query); 

你會得到以下結果

Array ([0] => stdClass Object ( 
       [Id] => 14 
       [username] => john 
       [password] => e10adc3949ba59abbe56e057f20f883e 
       [email] => [email protected] 
       [key] => 7f55570435fd15393f27eaac659b078a 
       [is_active] => 1 
       [gender] => Man 
       [countryid] => 1 
       [stateid] => 4 
       [cityid] => 4 
       [age] => 31 
     )) 

所以,如果你想從這個數組獲取單個元素的值,你可以寫下面的代碼 -

echo $query[0]->username; 

那麼你得到下面的值

john 

我希望這可以解決你的問題。我相信你可能已經找到了答案。但是我也遇到了同樣的問題,所以我認爲這可能有助於某人。