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); 
    }

}

在我看来:

打印_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

6 回答 6

4

最好将其保存到另一个数组

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

现在你有:

echo $my_values[0]; // wwwwwwwwwwww
echo $my_values[1]; // 5454546
于 2013-02-22T10:24:51.593 回答
4

当您打印查询变量时,

print_r($query);

你会得到以下结果

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

所以如果你想从这个数组中获取单个元素的值,你可以编写如下代码——

echo $query[0]->username;

然后你得到以下值

john

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

于 2013-12-30T11:10:45.823 回答
1

你可以这样尝试

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); 
    }
}
于 2013-02-22T10:24:06.937 回答
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;
}
于 2013-02-22T10:33:25.497 回答
0

Look 数组包含“stdClass Object”对象。所以你需要将对象转换为数组。所以转换使用,

$data= $q->result();
$data['data']=$data->result_array();  or $data->row_array();
于 2013-02-22T10:26:16.037 回答
0

您使用一些临时变量遍历结果以构造变量。但我不知道将数组值存储在单独的变量中有什么用:-)

$i = 0;
 foreach($data as $row)
{
  $var_.$i = $row->value;
  $i++;
}
于 2013-02-22T10:28:25.093 回答