php为foreach()提供的参数无效

时间:2014-08-18 01:52:13

标签: php codeigniter

我真的不明白那里发生了什么。 我在第87行遇到了问题

$this->data['option_pengujian'][$row->id_penguji] = $row->penguji;

这是函数的代码

public function tambah()
    {
        $this->data['breadcrumb']   = 'Pengujian > Tambah';
        $this->data['main_view']    = 'view_pengujian/pengujian_form';
        $this->data['form_action']  = 'pengujian/tambah';
        $penguji = $this->penguji->cari_semua();
        if($penguji)
        {
            foreach($penguji as $row)
            {
                $this->data['option_pengujian'][$row->id_penguji] = $row->penguji;
            }
        }
        else
        {
            $this->data['option_pengujian']['00'] = '-';
            $this->data['pesan'] = 'Data penguji tidak tersedia. Silahkan isi dahulu data penguji.';
            // if submit
            if($this->input->post('submit'))
            {
                if($this->siswa->validasi_tambah())
                {
                    if($this->siswa->tambah())
                    {
                        $this->session->set_flashdata('pesan', ' Proses tambah data berhasil');
                        redirect('pengujian');
                    }
                    else
                    {
                        $this->data['pesan'] = 'Proses tambah data gagal';
                        $this->load->view('template', $this->data);
                    }
                }
                else
                {
                    $this->load->view('template', $this->data);
                }
            }
            else
            {
                $this->load->view('template', $this->data);
            }
        }
    }

这是模型中的cari_semua()

public function cari_semua()
    {
        return $this->db->order_by('id_penguji', 'ASC')->get($this->db_tabel)->result();
    }

2 个答案:

答案 0 :(得分:0)

你需要对你的代码进行消毒再尝试以下内容,如果没有更多的信息告诉你出了什么问题,这个代码应该是WONT解决你遇到的问题。

public function tambah()
{
    $this->data['breadcrumb']   = 'Pengujian > Tambah';
    $this->data['main_view']    = 'view_pengujian/pengujian_form';
    $this->data['form_action']  = 'pengujian/tambah';
    $penguji = $this->penguji->cari_semua();
    if($penguji)
    {
        if(is_array($penguji))
        {
        foreach($penguji as $row)
        {
            $this->data['option_pengujian'][$row->id_penguji] = $row->penguji;
        }
        }
        else
        {
        return "this aint a array";
        die;
    }
    else
    {
        $this->data['option_pengujian']['00'] = '-';
        $this->data['pesan'] = 'Data penguji tidak tersedia. Silahkan isi dahulu data penguji.';
        // if submit
        if($this->input->post('submit'))
        {
            if($this->siswa->validasi_tambah())
            {
                if($this->siswa->tambah())
                {
                    $this->session->set_flashdata('pesan', ' Proses tambah data berhasil');
                    redirect('pengujian');
                }
                else
                {
                    $this->data['pesan'] = 'Proses tambah data gagal';
                    $this->load->view('template', $this->data);
                }
            }
            else
            {
                $this->load->view('template', $this->data);
            }
        }
        else
        {
            $this->load->view('template', $this->data);
        }
    }
}

答案 1 :(得分:0)

...
foreach($penguji->row() as $row){
...

OR

...
foreach($penguji->result() as $row){
...

OR:如果你想将它($penguji)作为一个数组从模型中返回,只需在变量的末尾添加它(->row()->result())回来。

如果您希望它更容易学习,请整齐地编写脚本。

这是您的模型

    public function cari_semua()
        {
            $this->db->order_by('id_penguji', 'ASC');
            return $this->db->get($this->db_tabel)->result(); 
// You have made the result as an array here. 
//So, you don't need to use `->result` in the controller.
        }

但是,如果模型函数包含一些错误,您将永远不会显示结果,将会出现错误页面而不是它。