错误的循环同时和为

时间:2013-09-05 03:12:06

标签: php

$arrayday=array();
$arrayTime=array();
$arrayTime1=array();
while($row7 = mysql_fetch_array($result7))
{
$arrayday[] = $row7['day'];
 $arrayTime[] =$row7['TimeIn'];
 $arrayTime1[] =$row7['TimeOut'];
}

for($a=0;$a<32;$a++)
{
    echo "<td>$a</td>";

    if($a==$arrayday[$a])
    {
        echo "<td>".$arrayTime[$a]."</td>";
        echo "<td>".$arrayTime[$a]."</td>";
        echo "<tr>";

    }
    else
    {
        echo "<td>No record</td>";
        echo "<td>No record</td>";
        echo "<tr>";    
    }
}

好吧..我有时间和超时时间20,27和28 ..从这段代码开始,它将循环3次1到30,对于第1次到第30次,它将把时间和超时放在第20天,没有记录第27天和第28天,第二个1到30,它将放置20和27,第三个循环1-30,它将把时间和超时分别为20,27和28 ..我只需要第3个循环。在1到30之间有3个记录。

这个问题已经由@llya解决

1 个答案:

答案 0 :(得分:1)

试试这个: 修复for while循环问题, 添加了遗忘/ tr标签。

// collect list of days
$arrayday=array();
$arrayTime=array();
$arrayTime1=array();
while($row7 = mysql_fetch_array($result7)) {
  $arrayday[] = $row7['day'];
  $arrayTime[$row7['day']] =$row7['TimeIn'];
  $arrayTime1[$row7['day']] =$row7['TimeOut'];
}

// build table
for ($x = 1; $x <= 31; $x++) {
  echo "<td>$x</td>";
  if (in_array($x, $arrayday)) {
    echo "<td>".$arrayTime[$x]."</td>";
    echo "<td>".$arrayTime1[$x]."</td>";
    echo "</tr><tr>";    
  } else {
    echo "<td>No record</td>";
    echo "<td>No record</td>";
    echo "</tr><tr>";    
  }
}