[在使用Ajax提取数据时如何解决联接查询? Codeigniter PHP

问题描述 投票:0回答:2

我试图将结果或数据查询到模型中后,将其提取到视图中现在我什么也拿不到。

我的脚本:

<script>
$(function(){
        showAllPosts();
        //function
        function showAllPosts(){
            $.ajax({
                type: 'ajax',
                url: '<?php echo base_url() ?>students/showAllPosts',
                async: false,
                dataType: 'json',
                success: function(data){
                    var html = '';
                    var i;
                    for(i=0; i<data.length; i++){
                        html +='<tr>'+
                                    '<td>'+data[i].activity+'</td>'+
                                '</tr>';
                    }
                    $('#showdata').html(html);
                },
                error: function(){
                    alert('Could not get Data from Database');
                }
            });
        }
});
</script>

所以这是我的观点:

<thead>
    <tr>
        <td>Posts</td>
    </tr>
</thead>
<tbody id="showdata">

</tbody>

我的控制器

public function showAllPosts(){
    $result = $this->student_model->showAllPosts();
    echo json_encode($result);
}

我的模型-因此,在这里您可以看到我联接了我的表,但是,如果我更改了,则删除所有联接并只包含$this->db->get('posts'),那么代码就可以工作并且可以获取数据,但是我不希望这样这就是为什么我需要联接查询。所以总的来说,我需要获取所有数据。

public function showAllPosts(){
    $this->db->select('*');
    $this->db->from('classes');
    $this->db->join('posts', 'classes.group_id = posts.activity_id');
    $this->db->where('classes.student_id', $id);
    $query = $this->db->get();
    if($query->num_rows() > 0){
        return $query->result();
    }else{
        return false;
    }

}
php codeigniter codeigniter-3
2个回答
0
投票

posts.activity_id是否对应于classes.group_id?

您能以几个示例发布mysql表,以便我们知道预期会发生什么吗?


0
投票

尝试右联接,如果它仅显示为帖子,它将显示所有数据。

$this->db->join('posts', 'classes.group_id = posts.activity_id','right');
© www.soinside.com 2019 - 2024. All rights reserved.