在Codeigniter中

时间:2018-09-03 05:35:45

标签: php codeigniter

我加入了这三个表,这些表是:出勤,员工和部门

这是我显示数据的模型

function lihatData()
{
    $this->db->select('attendance.emp_code, attendance.emp_name,division.name_division,attendance.date,attendance.time_in, attendance.time_out');    
    $this->db->from('attendance');
    $this->db->join('employee', 'employee.emp_code = attendance.emp_code');
    $this->db->join('division', 'employee.id_division = divisiob.id_division');
    $this->db->where_in('division.id_division',$this->session->userdata('id_division')
}

这是我的观点

    <table class="table table-striped table-bordered table-hover">
        <thead>
            <tr>
                <th><center>No</center></th>
                <th><center>EMP CODE</center></th>
                <th><center>NAME</center></th>
                <th><center>DIVISION</center></th>
                <th><center>DATE</center></th>
                <th><center>TIME IN</center></th>
                <th><center>TIME OUT</center></th>

            </tr>
        </thead>
        <tbody>
        <?php 
        $no = 1;
        if(is_array($data)){
        foreach($data as $row){
        ?>
            <tr>
                <td><?php echo $no++;?></td>
                <td><?php echo $row->emp_code; ?></td>
                <td><?php echo $row->emp_name; ?></td>
                <td><?php echo $row->name_division; ?></td>
                <td><?php echo date("d-m-Y", strtotime($row->date))?></td>
                <td><?php echo $row->time_in; ?></td>
                <td><?php echo $row->time_out; ?></td>
            </tr>
        <?php } }?>

        </tbody>
    </table>

这是我从代码中得到的: this is the result

所以我需要将结果更改为如下所示:

                 Division : Redaksi (based on user's division)
-------------------------------------------------------------------
|    emp code   |    name   |   date   |   time in   |   time out  |
-------------------------------------------------------------------

更新:我已经设法将除法分组到一个表中,结果如下:

table after grouped

如您所见,它已经显示了用户划分的数据。但是我需要删除除法表,并将其更改为某种表的名称,或者根据用户名将除法的名称放在表的顶部

3 个答案:

答案 0 :(得分:0)

函数lihatData() {

$this->db->from('attendance');
$this->db->join('employee', 'employee.emp_code = attendance.emp_code');
$this->db->join('division', 'employee.id_division = divisiob.id_division');
$this->db->where_in('division.id_division',$division);
return $this->db->get()->result(); 

}

尝试

答案 1 :(得分:0)

关键是如何按结果分组结果。我认为您可以按除法对结果数组进行排序,或按以下方式对其进行分组:

$sortedResult = [];
foreach ($data as $row) {
    $sortedResult[$row->name_division] = $row;
}

//Render
<?php foreach ($sortedResult as $devision => $data) { ?>
<div><?php echo $devision; ?></div>
<table class="table table-striped table-bordered table-hover">
    <thead>
        <tr>
            <th><center>No</center></th>
            <th><center>EMP CODE</center></th>
            <th><center>NAME</center></th>
            <th><center>DATE</center></th>
            <th><center>TIME IN</center></th>
            <th><center>TIME OUT</center></th>

        </tr>
    </thead>
    <tbody>
    <?php
    $no = 1;
    foreach($data as $row){
    ?>
        <tr>
            <td><?php echo $no++;?></td>
            <td><?php echo $row->emp_code; ?></td>
            <td><?php echo $row->emp_name; ?></td>
            <td><?php echo date("d-m-Y", strtotime($row->date))?></td>
            <td><?php echo $row->time_in; ?></td>
            <td><?php echo $row->time_out; ?></td>
        </tr>
    <?php }?>

    </tbody>
</table>
<?php } ?>

答案 2 :(得分:0)

一种可能的解决方案是从您的第一个array项目中提取数据,如下所示的方法应该起作用

<?php
if (is_array($data) && count($data) > 0)
{
?>
<h1><?=$data[0]->nama_division; ?></h1>
<?php
}
?>
<table class="table table-striped table-bordered table-hover">
 <thead>
 <tr>
    <th><center>No</center></th>
    <th><center>EMP CODE</center></th>
    <th><center>NAME</center></th>
    <th><center>DATE</center></th>
    <th><center>TIME IN</center></th>
    <th><center>TIME OUT</center></th>

 </tr>
 </thead>
 <tbody>
 <?php 
 $no = 1;
 if(is_array($data))
 {
    foreach($data as $row){
 ?>
     <tr>
        <td><?php echo $no++;?></td>
        <td><?php echo $row->emp_code; ?></td>
        <td><?php echo $row->emp_name; ?></td>
        <td><?php echo date("d-m-Y", strtotime($row->date))?></td>
        <td><?php echo $row->time_in; ?></td>
        <td><?php echo $row->time_out; ?></td>
     </tr>
<?php 
    } 
 }
?>
</tbody>
</table>