加入查询与篝火(codeigniter)

时间:2015-08-03 13:03:24

标签: php mysql codeigniter join

我试图在篝火中进行连接查询(这对我初学者来说很棒)

我首先尝试在方法中设置一个公共函数,但过了一段时间,我觉得把它放在控制器中会更好(也许我错了......?)

但是,我想我的加入请求是有效的,但我无法在我看来...

这是我的控制器:

class Patient extends Admin_Controller {

    public function __construct() {
        parent::__construct();

        $this->load->model('post_model');

        Template::set_block('search/search', 'search/search');
        //Template::set('toolbar_title', 'Manage Your Blog');
        Template::set_theme('custom', 'default');
        Template::set_block('nav', 'nav');
    }

    public function detail($id = null) {
        $this->load->helper('typography');
        $this->load->model('operation_model');

        $this->db->select('*');
        //$this->db->from ('operation AS ope');
        $this->db->from('operation');

        $this->db->join('patient', "patient.zkp_pat = operation.zkf_pat ");

        $query = $this->db->get();
        $post = $this->post_model->find($id);

        //Template::set('post', $query);
        Template::set('post', $post);

        Template::set_view('detail');
        Template::render();
    }
}

我的观点文件:

<code>
    <div class="post">
        <?php
        echo ($post->nom . ' ');
        echo ($post->prenom . ' ');
        echo ($post->zkp_pat . ' ');

        echo ($post->dob);

        foreach ($query as $row) :
            echo ($row->zkf_pat . ' ' );
            echo "titre de l'opération: " . ($row->titre);
        endforeach;
        ?>
    </div>
</code>

感谢您的建议和帮助!

1 个答案:

答案 0 :(得分:0)

我也在BF论坛上寻求帮助,有人给了我解决方案=&gt;希望这会帮助别人。问题出在$query,这是一个DB_result对象。 http://www.codeigniter.com/user_guide/database/query_builder.html#selecting-data

解决我必须做的问题:$query->result()

最终代码:

控制器:

public function detail ($id = null){
    $this->load->helper('typography');


    $this->db->from ('operation as ope');
    $this->db->join ('patient',
                    "patient.zkp_pat = ope.zkf_pat " );
    $this->db->where ('patient.zkp_pat', $id);
    $query = $this->db->get();

    $post = $this->post_model->find($id);

    Template::set('query', $query);
    Template::set('post', $post);


    Template::set_view('detail');
    Template::render()        
}

并查看文件:

<div class="post">
    <h2><?php e($post->nom); ?></h2>
<?php 
echo ($post->nom . ' '); echo ($post->prenom . ' '); 
echo($post->zkp_pat . ' ');
echo ($post->dob);

foreach ($query->result() as $row) :
    echo '<div>'
    echo " \n"; 
    echo ($row->zkf_pat . '  ');
    echo "titre de l'opération: " . ($row->titre);
?>
    </div>
<?php 
    endforeach;
?>

</div>

$query->get()->result()返回包含所有已获取数据的对象, 而$query->get()->row()只返回一个结果行,如果结果有一行,则只返回第一行。结果作为对象给出......

如果你喜欢我的编辑,请upvote,这将非常有用!