【发布时间】:2011-10-12 10:24:14
【问题描述】:
$result= db_query("SELECT dayoff FROM specificdayoff");
$node->frmdate = mktime(0,0,0, $node->frmdate['month'], $node->frmdate['day'],$node->frmdate['year']);
$node->todate = mktime(0,0,0, $node->todate['month'], $node->todate['day'],$node->todate['year']);
$node->dayoff = mktime(0,0,0, $node->dayoff['month'], $node->dayoff['day'],$node->dayoff['year']);
$data = $node->dayoff;
$frmdate = $node->frmdate;
$todate = $node->todate;
$iii=0;
while($frmdate!=$todate)
{
while($data= db_fetch_object($result))
{
if($frmdate==$data)
{
$iii++;
//debug
}
}
$frmdate=mktime(0, 0, 0, date("m", $frmdate), date("d", $frmdate)+1, date("Y", $frmdate));
//debug2
}
$diff=$iii
我需要将$frmdate 的每个元素与$data 的所有元素进行比较。但是当我运行这段代码时,$diff 一直返回 0。意思是说,我的 if 语句有问题,但我似乎无法弄清楚它有什么问题。
当我调试这段代码时,两个 while 循环都没有按我的意愿运行。第二个while循环只运行一次。每次第一个 while 循环运行时,我都需要运行第二个 while 循环。有什么帮助吗?
调试运行如下: 调试 调试 调试 调试2 调试2 调试2
我需要它像这样运行: 调试 调试 调试 调试2 调试 调试 调试 调试2 调试 调试 调试 调试2
【问题讨论】:
-
看起来您正在将一个对象 (
$data) 与一个整数 (时间戳$frmdate) 进行比较。我会检查您对db_fetch_object的期望 -
@BrendanLong 因为当 $frmdate 不等于 $data 时,我不希望对 $iii 进行任何添加
-
@Cooper - 所以请留下
else。你不需要一个。if语句单独使用就可以了。 -
@phindmarsh 你知道我可以比较这两个变量($data,$frmdate)的方法吗?我希望 db_fetch_object 会获取数据库中的“dayoff”字段。 “dayoff”字段包含时间戳。我需要将这个休息日字段与 $frmdate 进行比较。
标签: php while-loop