CodeIgniter Forums
Error when show data from database ? - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived General Discussion (https://forum.codeigniter.com/forumdisplay.php?fid=21)
+--- Thread: Error when show data from database ? (/showthread.php?tid=32654)



Error when show data from database ? - El Forum - 07-30-2010

[eluser]Unknown[/eluser]
this my code

model:
Code:
<?php
class Artikel_Model extends Model {
    
    var $table = 't_artikel';
    
    function Artikel_Model(){
        parent::Model();

    }
    
    function get_data(){
        /*
        $this->db->select('*');
        $this->db->from($this->table);
        */
        $this->db->select('t_artikel.id,
                            t_artikel.judul,
                            t_artikel.alias,
                            t_artikel.isi,
                            t_artikel.isi_kutipan,
                            t_artikel.create_username,
                            t_artikel.update_username,
                            t_artikel.`status`,
                            t_artikel.baktif,
                            t_artikel.idkategori,
                            t_artikel.tgl_create,
                            t_artikel.tgl_publish,
                            t_artikel.tgl_update,
                            t_artikel.totview,
                            t_artikel.bkomentar,
                            t_artikel_kategori.nmkel');
        $this->db->from('t_artikel Left Join t_artikel_kategori ON t_artikel_kategori.id = t_artikel.idkategori');
        $this->db->order_by('t_artikel.tgl_create', 'desc');

        //$this->db->limit($limit, $offset);
        return $this->db->get();    
    }
    
    function get_count_all_raws(){
        return $this->db->count_all($this->table);
    }
}
?>

controller:
Code:
<?php

class Artikel extends Controller {
    
    function Artikel(){
        parent::Controller();
        $this->load->model('Artikel_Model');
    }
    
    function index(){
        // cek sudah login apa belum
        if($this->session->userdata('login')==TRUE){
            $this->get_artikel();
        }else{
            redirect('login');
        }        
        
    }
    
    function get_artikel(){
        // tampilkan hasil ke view
        $data['title'] = 'Artikel';
        $data['main_view']     = 'admin/artikel';
        
        $artikels = $this->Artikel_Model->get_data();
        $trows = $this->Artikel_Model->get_count_all_raws();
        
        if($trows>0){
            $srow='
            <table width="200" border="1">
              <tr>
                <td width="39">No.</td>
                <td width="79">Judul</td>
                <td width="26">Isi</td>
                <td width="28">&nbsp;</td>
              </tr>';
              
              $i = 0;
              foreach($artikels as $artikel){
                $i++;
                $srow .='
                  <tr>
                    <td>'.$i.'</td>
                    <td>'.$artikel["judul"].'</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>';
                  
                    echo $artikel[0];
              
              }
              $srow .='</table>';
              

  
            $data['table'] =  $srow;
        }
        
        $this->load->view('admin/admin_template', $data);            
    }
}
?&gt;

View:
<p>Show Data</p>
&lt;?php echo $tabel ?&gt;

and then get error:
[code]
A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 0

Filename: admin/artikel.php

Line Number: 49
A PHP Error was encountered

Severity: Notice

Message: Undefined index: judul

Filename: admin/artikel.php

Line Number: 44
[/code]


Error when show data from database ? - El Forum - 07-30-2010

[eluser]ELRafael[/eluser]
Model
Code:
function get()
{
  return $this->db->get('table_name');
}

Controller
Code:
$data = $this->model_name->get();
foreach ( $data->result() as $d )
{
  echo $d->id;
}
OR
Code:
$data = $this->model_name->get();
foreach ( $data->result_array() as $d )
{
  echo $d['id'];
}

Look the result() or result_array(). You forgot that :lol:


Error when show data from database ? - El Forum - 07-30-2010

[eluser]mddd[/eluser]
In your model in get_data you are returning $this->db->get();
Then in your controller you are using that result ($artikels) to do 'foreach $artikels as $artikel'.
But the result of get() is not a list of items. It is a database query result object. You need to get the result items from it using result() of result_array().

Change the last line of get_data():
Code:
// old:
return $this->db->get();
// new:
return $this->db->get()->result_array();