Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果受foreach()数据变量的制约,如何回显foreach()数据变量?_Php - Fatal编程技术网

Php 如果受foreach()数据变量的制约,如何回显foreach()数据变量?

Php 如果受foreach()数据变量的制约,如何回显foreach()数据变量?,php,Php,我有一个表tbl_tmpdtr和tbl_employee,并使用此查询获取所需数据: SELECT tbl_tmpdtr.id, tbl_tmpdtr.userid, date(tbl_tmpdtr.in_out) as in_out, time(tbl_tmpdtr.in_out) as dtr_time, tbl_tmpdtr.status, tbl_employee.emp_id, tbl_employee.emp_fname

我有一个表tbl_tmpdtr和tbl_employee,并使用此查询获取所需数据:

SELECT 
    tbl_tmpdtr.id, 
    tbl_tmpdtr.userid, 
    date(tbl_tmpdtr.in_out) as in_out,
    time(tbl_tmpdtr.in_out) as dtr_time, 
    tbl_tmpdtr.status,
    tbl_employee.emp_id,
    tbl_employee.emp_fname,
    tbl_employee.emp_mname,
    tbl_employee.emp_lname
FROM 
    tbl_tmpdtr 
INNER JOIN 
    tbl_employee 
ON 
    tbl_tmpdtr.userid = tbl_employee.emp_id 
WHERE 
    tbl_tmpdtr.userid='(some id)'
GROUP BY 
    tbl_tmpdtr.userid

sample output query:
id | userid |  inp_out   | dtr_time | status
1  | 1002   | 2015-05-01 | 09:00:00 | In
2  | 1002   | 2015-05-01 | 18:30:00 | Out
我在我的视图中预先获取了这些数据,其中有两个单独的输入 标记为“In”和“Out”的类型,我的问题是如何放置dtr_时间 09:00:00在标记为“in”的输入类型中,如果状态为“in”,则为“on” 另一方面,输入类型中的下一个dtr_时间为18:30:00 如果状态为“OUT”,则为“OUT”

我尝试过,但即使在dtr_时间,状态为OUT的输入类型标记为In

这是我试过的

  <?php if(!empty($dtr)){foreach ($dtr as $dtrs): ?>

      <h4>  
        <label for="exampleInputEmail1"> Full name: </label>
          <?php echo ucfirst($dtrs->emp_lname).", ".ucfirst($dtrs->emp_fname).", ".ucfirst($dtrs->emp_mname)."."; echo "</br>";?>              
        <label for="exampleInputEmail1"> EMP_ID: </label>
          <?php echo $dtrs->emp_id;?></br></br>
      </h4>
                  <div>              
                        <table class="display table table-bordered table-striped">
                        <thead>
                          <tr>
                            <th bgcolor="2ECC71"><center><font color="white">Date(s)</font></center></th>
                            <th bgcolor="2ECC71"><center><font color="white">In</font></center></th>
                            <th bgcolor="2ECC71"><center><font color="white">Out</font></center></th>
                          </tr>
                        </thead>  
                          <tr>
                          <center>
                            <td align="center"><input type="date" value="<?php echo $dtrs->in_out;?>"></td>
                            <?php if($dtrs->status == 'In'){?>
                            <td align="center"><input type="text" value="<?php echo $dtrs->dtr_time;} else if($dtrs->status == 'Out'){?>"></td>  
                            <td align="center"><input type="text" value="<?php echo $dtrs->dtr_time; } else { echo "do nothing";}?>"></td>
                          </tr>
                          </center>
                        </table>
                  </div>
  <?php endforeach; }?> 

全名:
环境管理计划编号:


日期 在里面 出来
如果您按userid排序,tbl_tmpdtr.in_out您可以在数组中迭代,并对照下一个索引的userid进行检查

<?php
$count = count($result);
for($i=0;$i<$count;$i++){
    if (($i+1) >= $count) {
        echo "User: " + $result[$i]["userid"];
        echo "Status:" +$result[$i]["status"];
        echo "Date: " + $result[$i]["inp_out"] + " - " + $result[$i]["dtr_time"];
    }

    if (
    $result[$i]["userid"] == $result[($i+1)]["userid"] &&
    $result[$i]["status"] == "In" && $result[($i+1)]["status"] == "Out" ) {
        echo "User: " + $result[$i]["userid"];
        echo "In: " + $result[$i]["inp_out"] + " - " + $result[$i]["dtr_time"];
        echo "Out: " + $result[$i+1]["inp_out"] + " - " + $result[$i+1]["dtr_time"];
        i++;
    }
    else {
        echo "User: " + $result[$i]["userid"];
        echo $result[$i]["status"]": " + $result[$i+1]["inp_out"] + " - " + $result[$i+1]["dtr_time"];
    }
}

你可以用这种方法来做,它会按你的意愿工作

    <tr>
        <td align="center"><input type="date" value="<?php echo $dtrs['inp_out']; ?>"></td>
        <td align="center"><input type="text" value="<?php echo (isset($dtrs['status']) && $dtrs['status'] === 'In') ? $dtrs['dtr_time'] : '----' ?>"></td>  
        <td align="center"><input type="text" value="<?php echo (isset($dtrs['status']) && $dtrs['status'] === 'Out') ? $dtrs['dtr_time'] : '----' ?>"></td>
    </tr>


请添加php代码。以及您尝试过的内容。展示你的efforts@Uchiha,已完成更新我的问题,提前感谢各位的想法。无法在阵列中完成,我正在使用codeigniter。所以我对它做了如下修改:对不起,我没有理解你,但是你可以访问CI中的变量,正如我所展示的,它对mewait@uchiha有效,为什么在输入类型OUT中,你给出的是一个值“----”,而不是id为2”的dtr_时间?我在这里做的是用状态检查值,如果
status==in
,那么它将把值放在
in
中,反之亦然,你面临的问题是什么?你的预期输出是什么只需使用预期输出更新您的问题