根据用户ID检索数据(CodeIgniter)

时间:2018-11-01 04:51:07

标签: php codeigniter

我对php很陌生,所以请多多包涵。我的数据库中有两个表,usersonlineform表。 onlineform表具有userid字段作为id表中users字段的外键。我正在尝试根据当前用户登录信息显示onlineform表中的数据。问题是,它显示所有用户的数据,而不是登录用户的数据。我在form_model中设置了查询,但我不知道查询是否正确

这是模型

form_model.php

function getEmployees() 
{
    $this->db->select("users.id, onlineform.date, onlineform.day, onlineform.in1, 
        onlineform.out1, onlineform.in2, onlineform.out2");
    $this->db->from('users');
    $this->db->join('onlineform','users.id = onlineform.userid', 'left');
    $this->db->order_by('date asc');
    $query = $this->db->get();
    return $query->result();
}

这是控制器

form.php

public function table()
{
    if($this->session->userdata('username') != '')  
       {     
            $this->load->model('form_model');
            $query = $this->form_model->getEmployees();
            $data['EMPLOYEES'] = null;
            if($query) {
                $data['EMPLOYEES'] =  $query;
            }
       } 

    else  
       {  
            redirect(base_url() . 'index.php/form/login');  
       }

            $this->load->view('table.php', $data);
}

这是我的观点

table.php

<?php 
        foreach($EMPLOYEES as $employee)
          {?>
         <tr>
          <td align="center" 
          <?php if($employee->day === "SAT" || $employee->day === "SUN"): ?> style="background-color:#A9A9A9; color: white;" <?php endif; ?>>
            <strong><?=$employee->day;?></strong>
          </td>
          <td align="center" 
          <?php if($employee->day === "SAT" || $employee->day === "SUN"): ?> style="background-color:#A9A9A9; color: white;" <?php endif; ?>>
            <strong><?=$employee->date;?></strong>
          </td>
          <td><?=$employee->out1;?></td>
          <td><?=$employee->in1;?></td>
          <td><?=$employee->out2;?></td>
          <td><?=$employee->in2;?></td>
         </tr>     
        <?php }?>

2 个答案:

答案 0 :(得分:0)

您可以通过getEmployees($ userid)将当前登录的userId传递到模型中

$query = $this->form_model->getEmployees($userid); 

然后在查询中使用它来获取与登录用户和数据库中的用户匹配的当前userId;

function getEmployees($userid) 
{
    $this->db->select("users.id, onlineform.date, onlineform.day, onlineform.in1, 
    onlineform.out1, onlineform.in2, onlineform.out2");
    $this->db->from('users');
    $this->db->where('onlineform','users.id',$userid); //add this line
    $this->db->join('onlineform','users.id = onlineform.userid', 'left');
    $this->db->order_by('date asc');
    $query = $this->db->get();
    return $query->result();
}

然后将其正常传递给您的视图。

希望这会有所帮助。

答案 1 :(得分:0)

您可以将当前登录的用户ID保存在会话中,然后在从数据库中检索数据时可以使用它。 将您的form_model.php代码更改为此

Uri uri = Uri.parse("https://chat.whatsapp.com/uniqueId");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(Intent.createChooser(intent, ""));