codeigniter 表格PHP中没有可用数据

bt1cpqcv  于 2023-01-06  发布在  PHP
关注(0)|答案(1)|浏览(69)

为什么我的数据表不显示我的数据每当我切换帐户?但如果我在管理员帐户,我可以看到表的数据发生了什么事?我不明白有人能请帮助我吗?
这里是我的index.php

<script type="text/javascript">
var manageTable;
var base_url = "<?php echo base_url(); ?>";

$(document).ready(function() {

  // initialize the datatable 
  manageTable = $('#manageTable').DataTable({
    'ajax': base_url + 'maincat/fetchMainCatData',
    'order': [],
  });

});
</script>

这是我的控制器

public function fetchMainCatData()
    {
        if(!in_array('viewMaincat', $this->permission)) {
            redirect('dashboard', 'refresh');
        }
        
        $result = array('data' => array());

        $data = $this->model_maincat->getMainCatData();

        foreach ($data as $key => $value) {
           
            

            // button
            $buttons = '';
            if(in_array('updateMaincat', $this->permission)) {
                $buttons .= '<a href="'.base_url('maincat/update/'.$value['id']).'" class="btn btn-info"><i class="fa fa-pencil"></i></a>';
            }

            if(in_array('deleteMaincat', $this->permission)) { 
                $buttons .= ($value['button_status'] == 1) ? ' <button style="display:none;" type="button" class="btn btn-danger" onclick="removeFunc('.$value['id'].')" data-toggle="modal" data-target="#removeModal"><i class="fa fa-trash"></i></button>' : '<button style="margin-left: 5px;" type="button" class="btn btn-danger" onclick="removeFunc('.$value['id'].')" data-toggle="modal" data-target="#removeModal"><i class="fa fa-trash"></i></button>';
            }
            

            $availability = ($value['active'] == 1) ? '<span class="label label-success">Active</span>' : '<span class="label label-danger">Inactive</span>';

            $result['data'][$key] = array(
                $value['name'],

                $availability,
                $buttons
            );
        } // /foreach

        echo json_encode($result);
    }
}

这是一个模型:

public function getMainCatData($id = null)
    {
        if($id) {
            $sql = "SELECT * FROM tbl_main_category where id = ?";
            $query = $this->db->query($sql, array($id));
            return $query->row_array();
        }   

        $user_id = $this->session->userdata('id');
        if($user_id == 1) {
            $sql = "SELECT * FROM tbl_main_category ORDER BY id DESC";
            $query = $this->db->query($sql);
            return $query->result_array(); 
        }
        else {
            
            $user_data = $this->model_users->getUserData($user_id);
            $sql = "SELECT * FROM tbl_main_category ORDER BY id DESC";
            $query = $this->db->query($sql);

            $data = array();

            return $data;       
        }
    }

它在管理员帐户中工作正常,但每当我切换帐户时,它没有显示任何数据

但如果帐户是admin,则数据如下

什么是我的问题在这里我不太明白为什么它给我一个空的数据每当我切换帐户?相同的型号和控制器使用

xxb16uws

xxb16uws1#

假设管理员帐户的id是1,当您使用非管理员帐户时,您将在getMainCatData函数中遍历if的else部分。
这个函数从数据库中获取数据,但是它总是返回一个空数组:

}
        else {
            
            /* ... */

            $data = array();

            return $data;       
        }

您可能希望返回查询的值:

}
        else {
            
            /* ... */

            $query = $this->db->query($sql);
            
            return $query->result_array();     
        }

注意:你的ifelse块接缝做同样的事情,我不确定if是必要的。

相关问题