我的代码有什么问题? 我选择了学生的标识符并将其存储在会话中,然后我对此进行了测试以从表中选择相应的值,并且从结果中我希望得到我正在寻找的表,但它并不是工作。 在这种情况下,我有三个表缺席_学生(CNE,Idabsence),缺席(iabsence,....)我希望从缺席中获得与id_student(CNE)相对应的行。
public function absence(){
$id2= $this->session->CNE;
$this->db->select('id_absence');
$this->db->from('absence_etudiant');
$this->db->where('CNE',$id2);
$query = $this->db->get();
$row=$query->row();
if($query->num_rows() == 1)
{
$id_abs = $row->id_absence;
}
$this->db->select('*');
$this->db->from('absence');
$this->db->where('id_absence',$id_abs);
$query = $this->db->get();
$result=$query->result();
$this->load->view('Etudiants/affi',$result);
}
答案 0 :(得分:0)
你可以发送更多ifno关于你的表关系。
我只能帮助您解决此问题
Controller.php这样
function absence(){
$data['result'] = $this->model->get_absence($this->session->CNE);
$this->load->view('Etudiants/affi', $data);
}
model.php
function get_absence($id){
$this->db->query('SELECT * FROM absence a WHERE a.id_absence IN (SELECT ae.id_absence FROM absence_etudiant ae WHERE ae.CNE = '.$id.' ORDER BY ae.CNE LIMIT 1)');
$result = $this->db->get()->result();
return $result;
}
希望,这有助于你
答案 1 :(得分:0)
使用连接获取所需数据的最简单查询。我将使用db->query()
public function absence(){
$id2= $this->session->CNE;
$query = $this->db->query("Select * From absence_etudiant Inner Join absence On absence.id_absence = absence_etudiant.CNE Where absence_etudiant.CNE = $id2");
$data['absences'] = $query->result();
$this->load->view('Etudiants/affi', $data);
}
我可能没有加入正确的字段。我不确定我理解所涉及的表格结构。这是我在您的问题中使用代码进行的最佳尝试。
查询结果将在var $absences
的视图中提供。在视图文件中,可以按如下方式创建为每个缺勤打印一行的表。
<table>
<?php foreach($absences as $absence) : ?>
<tr>
<td><strong><?php echo $absence->id_absence; ?></strong></td>
<td><?php echo $absence->id_seance; ?></td>
<td><?php echo $absence->justification; ?></td>
<td><?php echo $absence->course; ?></td>
</tr>
<?php endforeach; ?>
</table>
我没有展示如何创建表格标题行,但如果您想要一个,则会将其放在<table>
标记和foreach
循环之间。
我应该补充一点,elddenmedio的另一个答案更好地展示了如何使用MVC主体来构建这个过程。他让控制器从模型中获取结果,然后将模型传递给视图。