在php codeigniter中访问数组元素不起作用

时间:2016-10-21 15:55:34

标签: php arrays codeigniter

在codeigniter中访问数组元素“id”不起作用。无法找到可能的失败原因。如果有人能够表明正确的方法,那将会很有帮助,

我的观点

<form name ="userinput" onsubmit="return test()" action="<?php echo base_url(); ?>index.php/patient/saveNewExaminationChart/<?php echo $pd['id']; ?>" method="post">

<?php echo $pd['id']; ?> 对于这部分,我想获得控制器传递的id号来查看。

我的控制器

public function editPeriodicalDetails(){

        $pid = $this->uri->segment(3);
        $this->load->model('patient_model');
        $patient['pd'] = $this->patient_model->getPeriodicalChart($pid);


        $this->load->helper('url');
        $this->load->view('Header');
        $this->load->view('Patient/editPeriodicalExam',$patient);
        $this->load->view('Footer');
}

我的模特

public function getPeriodicalChart($id){
        $this->load->database();
        $this->db->select('*');
        $this->db->from('periodical_examination a');
        $this->db->join('patient p','p.id = a.pid');
        $this->db->where('a.pid',$id);

        $query = $this->db->get();
        return $query->result();

    }

5 个答案:

答案 0 :(得分:2)

在模型中

return $query->result_array();

在控制器中

$result= $this->patient_model->getPeriodicalChart($pid);
$patient = $result[0]['pd']; # zero indexed array pointer 

答案 1 :(得分:2)

result()是递归的,因为它返回一个std类对象,其中result_array()只返回一个纯数组,因此result_array()将是关于性能的选择。虽然速度上的差异很小。在PHP中基本知识的任何人都会发现易于阅读的代码

而不是这一行

$query = $this->db->get();
 return $query->result();

(只是使用它真的很容易理解)

return $this->db->get()->result_array();

答案 2 :(得分:1)

它应该是一个对象。试试这个

<?php echo $pd->id; ?>

如果可能有更多的结果集,那么试试这个

<?php echo $pd[0]->id; ?>

答案 3 :(得分:1)

$query->result();

是一个Object而不是一个数组..返回一个你应该使用的数组

$query->result_array();

答案 4 :(得分:0)

您在模型中使用了return $query->result();,并通过Controller将所有表发送到视图。 那太好了。一切都很好。现在,您只需在视图页面中使用以下代码echo id

查看(editPeriodicalExam)

<?php
 foreach($pd as $item){
    echo $item['id'];
 } 
?>