2013-07-09 44 views
0

得到不同的结果,我试图让从笨与模式SQL查询结果选择所有属性,但它返回一个PHP错误,但是当我指定给正确答案的一些属性但查询太​​长而无法写入。选择所有,并从表中的一些属性,笨

这2模式选择,我已经尝试给不同的结果。

首先

类model_kemiskinan扩展CI_Model {

..... //这里

function get_kemiskinan_provinsi(){ 
    $this->tahun = "2011"; 
    $this->kodeProv = "31";   
    $this->query = "select * from kemiskinan where id_provinsi = ".$this->kodeProv." and tahun = ".$this->tahun;   
    $this->result = $this->db->query($this->query);     
    return $this->result->result(); 
} 

然后构造的controlller传递

public function testquery(){   
    $this->load->model('model_kemiskinan');     
    $data['hasil'] = $this->model_kemiskinan->get_kemiskinan_provinsi();   
    $data['main_content'] = 'test';   
    $this->load->view('template', $data);  
} 

和查看'测试'用这些c回应它颂:

if(is_array($hasil)){   
    foreach ($hasil as $baris) {    
     echo $baris->tahun; 
     echo $baris->id_provinsi;    
     echo "<br/>"; 
    } 

,结果是这个

A PHP Error was encountered 
Severity: Notice 
Message: Undefined property: stdClass::$tahun 

但是,如果我改变看起来像这样的选择模式:

$this->query = "select tahun, id_provinsi from kemiskinan where id_provinsi = ".$this->kodeProv." and tahun = ".$this->tahun;   

它将工作正确

有没有关于选择所有模式的解决方案?

-Thanks在─

回答

1

像文档(http://ellislab.com/codeigniter/user-guide/database/examples.html)说:

$query = $this->db->query('SELECT name, title, email FROM my_table'); 

foreach ($query->result() as $row) 
{ 
    echo $row->title; 
    echo $row->name; 
    echo $row->email; 
} 

echo 'Total Results: ' . $query->num_rows(); 

您可以通过调用结果()只得到一个行,所以你需要通过的foreach调用它:

function get_kemiskinan_provinsi(){ 
    $this->tahun = "2011"; 
    $this->kodeProv = "31";   
    $this->query = "select * from kemiskinan where id_provinsi = ".$this->kodeProv." and tahun = ".$this->tahun;   
    $this->result = $this->db->query($this->query); 

    $res = array();    
    foreach ($this->result->result() as $row) 
    { 
     $res[] = $row; 
    } 
    return $res; 
} 

请认识到,在结果对象的字段是区分大小写的!如果你的数据库中有一个名为“Tahun”的字段,那么“select tahun ...”将在mysql中起作用,并且会为你提供一个可以访问$ res-> tahun的对象。

如果“选择* ... ...”,那么你只能访问它像这样:$水库> Tahun(与首都圈T)

+0

后,我试图修改的部分,同样的错误仍然会出现。 我的控制器和视图怎么样? - 感谢之前 - –

+0

你可以做一个print_r($ hasil);在视图请 – steven

+0

阵列([0] => stdClass的对象([否] => 55 [Id_provinsi] => 31 [Tahun] => 2011 [Jmlh_Pend_miskin1] => 363.42 [Jmlh_Pend_miskin2] => 0.00 [Jmlh_Pend_miskin3] => 363.42 [persentase_Pend_miskin1] => 3.75 [persentase_Pend_miskin2] => 0.00 [persentase_Pend_miskin3] => 3.75 [Garis_kemiskinan1] => 355480.00 [Garis_kemiskinan2] => 0.00 [Garis_kemiskinan3] => 355480.00 [IKP1_1] => 0.60 [IKP1_2] IKP1_3] => 0.60 IKP2_1] => 0.15 IKP2_2] => 0.00 [IKP2_3] => 0.15)) –

相关问题