<legend id='gplwy'><style id='gplwy'><dir id='gplwy'><q id='gplwy'></q></dir></style></legend>

      <tfoot id='gplwy'></tfoot>
      • <bdo id='gplwy'></bdo><ul id='gplwy'></ul>
    1. <i id='gplwy'><tr id='gplwy'><dt id='gplwy'><q id='gplwy'><span id='gplwy'><b id='gplwy'><form id='gplwy'><ins id='gplwy'></ins><ul id='gplwy'></ul><sub id='gplwy'></sub></form><legend id='gplwy'></legend><bdo id='gplwy'><pre id='gplwy'><center id='gplwy'></center></pre></bdo></b><th id='gplwy'></th></span></q></dt></tr></i><div id='gplwy'><tfoot id='gplwy'></tfoot><dl id='gplwy'><fieldset id='gplwy'></fieldset></dl></div>

      <small id='gplwy'></small><noframes id='gplwy'>

    2. 休假申请月报

      时间:2023-09-24

      <small id='1gdEo'></small><noframes id='1gdEo'>

    3. <legend id='1gdEo'><style id='1gdEo'><dir id='1gdEo'><q id='1gdEo'></q></dir></style></legend>

    4. <tfoot id='1gdEo'></tfoot>
          <tbody id='1gdEo'></tbody>

                <bdo id='1gdEo'></bdo><ul id='1gdEo'></ul>
                <i id='1gdEo'><tr id='1gdEo'><dt id='1gdEo'><q id='1gdEo'><span id='1gdEo'><b id='1gdEo'><form id='1gdEo'><ins id='1gdEo'></ins><ul id='1gdEo'></ul><sub id='1gdEo'></sub></form><legend id='1gdEo'></legend><bdo id='1gdEo'><pre id='1gdEo'><center id='1gdEo'></center></pre></bdo></b><th id='1gdEo'></th></span></q></dt></tr></i><div id='1gdEo'><tfoot id='1gdEo'></tfoot><dl id='1gdEo'><fieldset id='1gdEo'></fieldset></dl></div>
                本文介绍了休假申请月报的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                我有两个表,一个是 tblemployee,其中包含员工姓名、员工 ID,另一个表 tblleaves 包含 empid、Leave_Date、fromDate、toDate、Description.

                I have two tables one is tblemployee having employee name, employee id and another table tblleaves having empid,Leave_Date, fromDate, toDate, Description.

                如果员工选择一个休假日期,它会将日期值存储到 Leave_Date,如果员工选择多个日期,它会存储从日期和截止日期的值.

                If employee choose one date leave it stores the date value to Leave_Date and if employee choose multiple dates it store value of from date and to date.

                在输出页面中,我想要一个员工姓名、休假天数和休假日期.休假日期包含 Leave_date、FromDate 和 ToDate 中的日期.

                In the output page I want an employee name, Leave Days and Leave Dates. Leave Dates have dates from Leave_date, FromDate and ToDate.

                     <?php 
                
                
                        if(isset($_POST['apply'])){
                
                        $ym=$_POST['month'];
                        list($Year, $Month) = explode("-", "$ym", 2);
                
                        $sql = "SELECT 
                       tblemployees.FirstName,
                       tblemployees.LastName,
                       count(tblleaves.empid) as Leave_Days,
                       GROUP_CONCAT( tblleaves.Leave_Date SEPARATOR ', ' ) AS leave_dates
                    FROM
                       tblleaves
                       JOIN tblemployees
                          ON tblleaves.empid = tblemployees.id
                    WHERE YEAR(Leave_Date) = $Year
                       AND MONTH(Leave_Date) = $Month
                    GROUP BY tblemployees.EmpId";
                
                        $query = $dbh -> prepare($sql);
                        $query->execute();
                        $results=$query->fetchAll(PDO::FETCH_OBJ);
                
                        $cnt=1;
                        if($query->rowCount() > 0)
                        {
                        foreach($results as $result)
                        {               ?>  
                          <tr>
                            <td> <?php echo htmlentities($cnt);?></td>
                              <td><?php echo htmlentities($result->FirstName);?>&nbsp;<?php echo htmlentities($result->LastName);?></td>
                               <td><?php echo htmlentities($result->Leave_Days);
                     ?></td>
                <td><?php echo htmlentities($result->leave_dates);
                
                    ?></td><?php $cnt++;}}}?>
                </tr>
                </tbody>
                </table>
                

                我希望页面的输出是

                employee name     Leave Days      Leave Dates 
                KrishnanR            3              12-06-2019, 13-06-2019, 14-06-2019
                                                     (FromDate and ToDate)
                PrakashR             1              12-06-2019
                                                     (Leave_Date)
                
                SelvaK               3        12-06-2019,13-06-2019&14-06-2019,|  14-06-2019
                                                      (FromDate and ToDate) |  (Leave_Date)
                

                推荐答案

                考虑下面这个粗略的例子...

                Consider the following crude example...

                示例模式(借用并改编自 P.Salmon):

                Sample schema (borrowed and adapted from P.Salmon):

                DROP TABLE IF EXISTS employee_leave;
                CREATE TABLE employee_leave
                (leave_id SERIAL PRIMARY KEY
                ,employee_id INT NOT NULL
                ,leave_from DATE NOT NULL
                ,leave_to DATE NOT NULL
                );
                
                INSERT INTO employee_leave
                (employee_id
                ,leave_from
                ,leave_to
                ) VALUES
                (11,'2019-05-30','2019-06-02'),
                (11,'2019-06-05','2019-06-05'),
                (11,'2019-06-06','2019-06-06'),
                (11,'2019-06-30','2019-07-11'),
                (12,'2019-05-30','2019-07-11'),
                (13,'2019-05-11','2019-05-12');
                

                示例代码:

                <?php
                
                include('path/to/connection/stateme.nts');
                
                $query = "
                SELECT employee_id
                     , leave_from
                     , leave_to
                     , datediff(leave_to,leave_from)+1 days
                  FROM employee_leave
                 ORDER
                    BY employee_id
                     , leave_from; -- ORDER BY is not strictly necessary, as the ordering can be done in presentation code.
                ";
                
                $result = mysqli_query($conn,$query);
                
                $array = array();
                
                while($row = mysqli_fetch_assoc($result)){
                  $array[] = $row;
                }
                
                $new_array = array();
                
                foreach($array as $k=>$v){
                  if($v['days']>1){
                    $days = ' days'; } else { $days = ' day'; }
                  $new_array[$v['employee_id']][] = $v['leave_from'].' - '.$v['leave_to'].' ('.$v['days'].$days.')';
                }
                
                print_r($new_array);
                ?>
                

                使用上面的架构,此代码输出...

                Using the schema above, this code outputs...

                Array
                (
                    [11] => Array
                        (
                            [0] => 2019-05-30 - 2019-06-02 (4 days)
                            [1] => 2019-06-05 - 2019-06-05 (1 day)
                            [2] => 2019-06-06 - 2019-06-06 (1 day)
                            [3] => 2019-06-30 - 2019-07-11 (12 days)
                        )
                
                    [12] => Array
                        (
                            [0] => 2019-05-30 - 2019-07-11 (43 days)
                        )
                
                    [13] => Array
                        (
                            [0] => 2019-05-11 - 2019-05-12 (2 days)
                        )
                
                )
                

                请注意,此结果将所有天视为工作日

                Note that this result considers all days as working days

                这篇关于休假申请月报的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:mysqli fetch 数组只显示第一行 下一篇:PHP:为什么我不能在 mysqli_fetch_array() 结果上循环两

                相关文章

                最新文章

              • <legend id='R9ck7'><style id='R9ck7'><dir id='R9ck7'><q id='R9ck7'></q></dir></style></legend>

                <i id='R9ck7'><tr id='R9ck7'><dt id='R9ck7'><q id='R9ck7'><span id='R9ck7'><b id='R9ck7'><form id='R9ck7'><ins id='R9ck7'></ins><ul id='R9ck7'></ul><sub id='R9ck7'></sub></form><legend id='R9ck7'></legend><bdo id='R9ck7'><pre id='R9ck7'><center id='R9ck7'></center></pre></bdo></b><th id='R9ck7'></th></span></q></dt></tr></i><div id='R9ck7'><tfoot id='R9ck7'></tfoot><dl id='R9ck7'><fieldset id='R9ck7'></fieldset></dl></div>

                <small id='R9ck7'></small><noframes id='R9ck7'>

                  <tfoot id='R9ck7'></tfoot>
                      <bdo id='R9ck7'></bdo><ul id='R9ck7'></ul>