2013-02-22 65 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 

我希望这可以解决你的问题。我相信你可能已经找到了答案。但是我也遇到了同样的问题,所以我认为这可能有助于某人。