首页 > 解决方案 > CodeIgniter如何检查数据库中的表中是否有值

问题描述

我正在创建一个项目,我想在其中验证是否有某个用户已将数据插入到表中,如果有则显示它。我对 CodeIgniter 还很陌生,如果某个用户已登录,我不确定如何显示该用户的所有列表。

到目前为止,这是我的模型中的内容:

 public function get_all_lists($user_id){
            $this->db->where('list_creator_id', $user_id);
            $query = $this->db->get('lists');

            return $query->result();    
        }

这是我的观点:

<li class="list-group-item">
                <a href="<?php echo base_url();?>project_controllers/lists/create" class="btn btn-success pull-right">
                    Create a List
                </a>
                <h3 align="center">
                    <a href="<?php echo base_url();?>project_controllers/lists/display/<?php echo $list->id;?>">
                        <?php echo $list->list_name; ?>
                    </a>            
                </h3>
            </li>
        <?php endforeach; ?>

这就是我的控制器上的内容:

public function index(){
        $user_id = $this->session->userdata('user_id');
        $this->load->model('project_models/lists_model');

        $data['lists'] = $this->lists_model->get_all_lists($user_id);

        $data['main_view'] = "project_views/lists/index";

        $this->load->view('project_views/layouts/main', $data);
    }

我的目标是显示某个用户在登录时创建的所有列表。如果用户已经登录并且没有创建任何列表,我想要一条消息说,“你没有尚未创建任何列表”

标签: phpcodeigniter

解决方案


用于num_rows()返回对象或 false。

public function get_all_lists($user_id){
            $this->db->where('list_creator_id', $user_id);
            $query = $this->db->get('lists');
            if ($query->num_rows() > 0) {
                return $query->result(); 
            }
            return false;
        }

用法:

if ($lists) {
    foreach(...) {

    }
} else {
    echo 'no rows';
}

推荐阅读