【问题标题】:I cant run condition IF [closed]我无法运行条件 IF [关闭]
【发布时间】:2021-05-18 23:42:59
【问题描述】:

我有按日期过滤的代码,我有 2 个条件,

  1. 第一个条件:从日期选择器中获取“tanggal”
  2. 第二个条件:变量 'tanggal' isNull

然而,代码只运行第二个条件,即使给定了条件变量日期

这是代码:

查看:

.... some code ....
   <form method="POST">
        <div class="form-group">
            <label>Date</label>
            <div class="input-group date">
                <div class="input-group-addon">
                    <span class="glyphicon glyphicon-th"></span>
                </div>

                <form method="get">
                    <input type="date" name="tanggal">
                    <input type="submit" value="FILTER">
                </form>

.... some code ....

                <tbody>
                    <?php
                    foreach ((array)$getDepartDetail as $us) { ?>
                        <tr>
                            <td><?php echo $us->Name ?></td>
                            <td><?php echo $us->NIK ?></td>
                            <td><?php echo $us->gender ?></td>
                            <td><?php echo $us->PositionDesc ?></td>
                            <td><?php echo $us->Shift ?></td>
                            <td><?php echo $us->tgl ?></td>
                            <td><?php echo $us->Attendance ?></td>
                            <td><a class="btn btn-info" href="<?php echo site_url('data_detail/detail_datas/vieworc/' . $us->NIK); ?>">Detail</a></td>
                        </tr>
                    <?php } ?>
                </tbody>

.... some code ....

型号:

.... some code ....
    public function get_allDprtDetail($DepartmentID)
        {
            if(isset($_GET['tanggal'])){
                $tgl = $_GET['tanggal'];
    
            $datas = "
            SELECT DISTINCT
            .... some code ....
        FROM
            emp0001
            INNER JOIN emp0003 ON emp0003.DepartmentID = emp0001.DepartmentID
            LEFT JOIN v_dvc0004_test ON emp0003.NIK = v_dvc0004_test.NIK 
                    AND DATE(v_dvc0004_test.Enroll) = '$tgl'
            JOIN emp0002 ON emp0002.PositionID = emp0003.PositionID
            LEFT JOIN shift ON emp0003.Shift_ID = shift.Shift_ID 
        WHERE
            emp0001.DepartmentID = '$DepartmentID' 
            AND emp0003.IsActive = 'T' 
        ORDER BY
            v_dvc0004_test.Enroll ASC
        
        ";}
            else{
                $datas = "
                SELECT DISTINCT
                .... some code ....
            }
                $query = $this->db->query($datas);
                return $query->result()

;}

【问题讨论】:

  • 请注意:您的代码对 SQL 注入开放。另外,您尝试过什么来调试问题?这是否与 Javascript 或 HTML 有任何关系?

标签: javascript php codeigniter datepicker mariadb


【解决方案1】:

如果$_GET['tanggal'] 未设置,则函数get_allDprtDetail 可以返回null。你可以尝试返回空数组,像这样

 public function get_allDprtDetail($DepartmentID)
{
    if(isset($_GET['tanggal'])){
       some code
    }
    return [];
}

【讨论】:

    【解决方案2】:

    首先,您应该添加对结果计数的检查...

    <tbody>
        <?php if(count($getDepartDetail)> 0){ ?>
         <?php foreach ($getDepartDetail as $us) { ?>
        <tr>
            <td><?php echo $us->Name ?></td>
            <td><?php echo $us->NIK ?></td>
            <td><?php echo $us->gender ?></td>
            <td><?php echo $us->PositionDesc ?></td>
            <td><?php echo $us->Shift ?></td>
            <td><?php echo $us->tgl ?></td>
            <td><?php echo $us->Attendance ?></td>
            <td><a class="btn btn-info" href="<?php echo site_url('data_detail/detail_datas/vieworc/' . $us->NIK); ?>">Detail</a></td>
         </tr>
         <?php } ?>
        <?php } ?>
    </tbody>
    

    【讨论】:

    • 如何查看计数结果
    • count($getDepartDetail) 显示数组中的项目数
    • 在我的回答中if(count($getDepartDetail)&gt; 0){ 是我所说的支票。
    • @rejaeja 如果它有效,请也​​接受这个作为接受的答案。谢谢
    猜你喜欢
    • 2013-03-15
    • 2011-12-28
    • 2012-11-25
    • 2022-11-14
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多