【发布时间】:2023-02-24 10:50:32
【问题描述】:
我正在尝试使用 php 和 mysql 构建一个每周轮班系统。如果选中一天(使用复选框),则状态为“存在”,如果未选中,则状态为“休息日”。它正在为周一至周六工作。但不是星期天。它正在产生“休息日”;不管复选框是否被选中。这是我的代码
**add.php**
<input type="hidden" name="mon" value="0" >
<input class="form-check-input" type="checkbox" id="inlineCheckbox1" name="mon" value="1">
<input type="hidden" name="tues" value="0" >
<input class="form-check-input" type="checkbox" id="inlineCheckbox2" name="tues" value="2">
......
......
<input type="hidden" name="sat" value="0" >
<input class="form-check-input" type="checkbox" id="inlineCheckbox6" name="sat" value="6">
<input type="hidden" name="sun" value="0" >
<input class="form-check-input" type="checkbox" id="inlineCheckbox7" name="sun" value="7">
-------------------------------------------------------------------------------------------------
$day=date('w', strtotime($current_date));
if( ($day==$mon AND $mon!=0) OR ($day==$tues AND $tues!=0) OR ($day==$wed AND $wed!=0) OR ($day==$thurs AND $thurs!=0) OR ($day==$fri AND $fri!=0) OR ($day==$sat AND $sat!=0) OR ($day==$sun AND $sun!=0)){
$status='Present';}else{$status='Day off';}
【问题讨论】:
-
如果您要表明的是您的
if条件正在评估为false并因此调用else块,那么您的下一步是调试和观察在该条件下使用的值。当你调试(使用单步调试器,或者只是在运行时输出/记录值以观察它们而失败),if条件中使用的确切运行时值是什么?观察到的结果是什么?预期的结果是什么?为什么? -
date('w')周日是什么?0。那么条件($day==$sun AND $sun!=0)有多大意义呢?第一部分仅在 $sun 为 0 时适用(因为 $day 就是这样),但$sun!=0不能同时为真。 -
不确定这有多大意义 - 您的表单可以提交多种的选中复选框,但看起来你只是在确定一状态值...?