Codeigniter - 显示与当前会话的用户ID相关的数据库记录

时间:2018-03-02 15:28:07

标签: php database codeigniter session

新的codeigniter如此不确定路线。 我有一个用户登录他们的仪表板,他们可以添加联系人。这些联系人显示在他们的仪表板上,但是到目前为止它显示了不同用户的联系人,而不是基于他们的会话只针对当前用户ID ..我的会话设置正确,因为当用户添加联系人时它被添加用他们当前的ID ..我只是不确定如何编辑表格来显示特定的记录

控制器



  function getDisplayUsersTable()
	{
	    
	    $this->load->model('Contacts_model');

	   
	    $this->load->library('table');

	  
	    $this->table->set_heading('Check', 'Contact ID','Fullname', 'Email', 'Country', 'Gender', 'Users_ID');

	   
	    $style = array('table_open'  => '<table class="table table-bordered table-hover">');
	    $this->table->set_template($style);

	    
	    $contacts = $this->Contacts_model->getUsers()->result_array();

      $tableData = '';




      foreach($contacts as $contact) {

				


        array_unshift($contact, '<input type="checkbox" label="check">');

        $this->table->add_row($contact);
      }

	    // generate table from query result
	    return $this->table->generate();

	}
&#13;
&#13;
&#13;

模型

&#13;
&#13;
class Contacts_model extends CI_Model{
  Public function AddContact($data){
   $query=$this->db->insert('contacts',$data);
 }


 function getUsers()
 {
     return $this->db->get('contacts');
 }
&#13;
&#13;
&#13;

查看

&#13;
&#13;
 <div>
               <?php


               echo $contacttable;?>
           </div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

您需要在模型中使用WHERE:

function getUsers($user_id)
{
    return $this->db->get_where('contacts', array('user_id' => $user_id))->result_array();
}

并在控制器中:

$contacts = $this->Contacts_model->getUsers($this->session->user_id);

答案 1 :(得分:0)

您需要模型方法来查找与用户相关的联系人。我在这里做了一些假设,但它可能是这样的

 function getUsersContacts()
 {
     //assuming 'userID' is the name of the session item and 
     //that 'id' is the name of the field in the contacts field

     $id = $this->session->userID; 
     //return results from the model
     return $this->db
                 ->get_where('contacts', array('id' => $id))
                 ->result_array();
 }

get_where()get()where()查询构建器方法合并为一个。 IMO,模型应该返回查询中的数据,而不仅仅是控制器用来检索数据的CI_DB_result对象。考虑到这一点,控制器然后使用此代码。

$contacts = $this->Contacts_model->getUsersContacts();

答案 2 :(得分:0)

  

我使用模型中的会话来匹配数据库表中的内容,就像我在函数中应该使用的那样

public function getContacts()
{
    $username = $this->session->userdata('username');
    $this->db->where('username', $username);
    $this->db->order_by('date_added', 'desc');
    $query = $this->db->get('contacts');

    if ($query->num_rows() > 0) {
        return $query->result();
    } else {
        return false;
    }
}