Php 基于用户id检索数据(CodeIgniter)
我对php相当陌生,所以请容忍我。我的数据库中有两个表,Php 基于用户id检索数据(CodeIgniter),php,codeigniter,Php,Codeigniter,我对php相当陌生,所以请容忍我。我的数据库中有两个表,users和onlineform表。onlineform表将userid字段作为users表中id字段的外键。我试图根据当前用户登录名显示在线表单表中的数据。问题是,它显示所有用户的数据,而不是登录用户的数据。我已经在我的表单_model中设置了一个查询,但我不知道该查询是否正确 这就是模型 form_model.php: function getEmployees() { $this->db->select("use
users
和onlineform
表。onlineform
表将userid
字段作为users
表中id
字段的外键。我试图根据当前用户登录名显示在线表单
表中的数据。问题是,它显示所有用户的数据,而不是登录用户的数据。我已经在我的表单_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);
}
<?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 }?>
这就是我的观点
table.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);
}
<?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 }?>
style=“背景色:#A9A9;颜色:白色;”>
style=“背景色:#A9A9;颜色:白色;”>
您可以通过getEmployees($userId)将当前登录的userId传递到模型中
然后在查询中使用它来获取当前用户ID,该用户ID与数据库中的登录用户相匹配
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();
}
然后正常地将其传递给您的视图
希望这有帮助。您可以在会话中保存当前登录的用户ID,然后在从数据库检索数据时使用它。 将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->where("users.id", $this->session->userdata('current_user_id'));
$this->db->order_by('date asc');
$query = $this->db->get();
return $query->result();
}
现在它给我这个错误,消息:为foreach()提供的参数无效。谢谢。它可以工作,只需要对代码进行一些调整。非常感谢你,伙计