-1
$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日目のタイムインとタイムアウトを取得しました..このコードから、1から30までの3回ループし、最初の1から30まで、20日目のタイムインとタイムアウトを記録しません27日目と28日目。 1~30で3枚収録。

この問題は@llyaによってすでに解決されています

4

1 に答える 1

1

これを試してみてください: 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>";    
  }
}
于 2013-09-05T03:22:44.767 に答える