0

私は現在、データベースからのデータで満たされた月の平日ごとにテーブルを生成しようとしています。

それはすべてうまくいきますが、空の日付も表示したいと思います。そう:

for (/*each weekday of the month*/) {
    if ($row['date'] == /*that day of the month*/)
        echo /*the data for that day*/;
    else
        echo /*empty row*/;
}

それがどのように見えるかだと思いますが、これを適切な方法で行う方法については手がかりがありません。

誰かが私に手を貸してくれることを願っています。

最終的なコード:

$data = array();
$numofdays = date(t, $monthstamp);

while ($row = $res->fetch_assoc()) {
    $monthstamp = mktime(0, 0, 0, $month, 1, $year);

    for ($i=1; $i<$numofdays; $i++) {
    $monthstamp = mktime(0, 0, 0, $month, $i, $year);
        if (strtotime($row['datum']) == $monthstamp) {
            echo 'Entry added for day '.$i.'<br>';
            $data[] = $i;
        }
    }
}

for ($i=1; $i<$numofdays; $i++) {
    if (in_array($i, $data))
        echo 'date ' . $i . ' is full<br>';
    else
        echo 'date ' . $i . ' is empty<br>';
}
4

2 に答える 2

0

テーブル / div にフォーマットし、DB 行に一致するように $row のフォーマットを変更する必要がありますが、これは機能するはずです。

// You would get your dates from DB here
$row = array
    (
    "01-01-2013" => "New Years Day",
    "31-01-2013" => "Holiday",
    );

$year = 2013;

for ($month = 1; $month <= 12; $month++)
    {
    $monthStamp = mktime(1, 1, 1, $month, 1, $year);

    $daysInMonth = date('t', $monthStamp);

    for($i = 1; $i <= $daysInMonth; $i++) 
    {
        $date = date("d-m-Y", mktime(1,1,1, $month, $i, $year) );

        echo $date;

        // Check to see if any events in $row and echo result is true
        if ( isset($row[$date]) )
            {
            echo " : " . $row[$date];
            }

        echo "<br>";
        }
    }
于 2013-10-16T09:20:07.550 に答える
0

まさにあなたが提案したものが機能します。このようなもの(疑似コード)

// create a date
$year = 2013;
for$month=1; $month<13;$month++;)
{
// create date for each day of each month, or just use an array with number of days in each month, which is easier imho
$MonthStamp = mktime(1, 1, 1, $month, 1,   $year);

// get number of days 
$NumOfDays = date(t, $MonthStamp);

for($i=1; $i=<$NumOfDays; $i++) 
  {
  if ($row['date'] == // Not sure how your date is formatted. create same date format
      echo /*the data for that day*/;
  else
    echo /*empty row*/;
  }
}
于 2013-10-16T08:54:06.800 に答える