在我的数据库中,我有表预留,在储备中我插入了以下数据:
然后我使用了以下查询(这只是一部分):
$checkInresult = mysql_result(mysql_query("SELECT DAYOFMONTH(`checkIn`) FROM `reserves` WHERE `idApart` = 1 AND `expired` = 0"), 0,0);
$checkOutresult = mysql_result(mysql_query("SELECT DAYOFMONTH(`checkOut`) FROM `reserves` WHERE `idApart` = 1 AND `expired` = 0"), 0,0);
$curDay = mysql_result(mysql_query("SELECT DAYOFMONTH(CURDATE())"), 0,0);
if((1 == $curDay) && (1 >= $checkInresult) && (1 <= $checkOutresult)){
$day1 = "currentO";
}elseif(1 == $curDay){
$day1 = "currentA";
}elseif((1 >= $checkInresult) && (1 <= $checkOutresult)){
$day1 = "occupiedDay";
}else{
$day1 = "availableDay";
}
和html(也只是一部分):
<div id="calendar">
<h1>June</h1>
<table>
<tr>
<td class="<?php echo $day1; ?>"><center>1</center></td>
<td class="<?php echo $day2; ?>"><center>2</center></td>
<td class="<?php echo $day3; ?>"><center>3</center></td>
<td class="<?php echo $day4; ?>"><center>4</center></td>
<td class="<?php echo $day5; ?>"><center>5</center></td>
<td class="<?php echo $day6; ?>"><center>6</center></td>
<td class="<?php echo $day7; ?>"><center>7</center></td>
</tr>
结果如下:
我希望第二个数据也能用红色标记,而不会产生太多ifs,因为同一个变量包含来自两个数据的checkIn和checkOut数据。可能吗?还是太混乱了? :■
答案 0 :(得分:1)
我愿意:
$curDay = mysql_result(mysql_query("SELECT DAYOFMONTH(CURDATE())"), 0, 0);
$result = mysql_query("SELECT DAYOFMONTH(`checkIn`) AS checkIn, DAYOFMONTH(`checkOut`) AS checkout FROM `reserves` WHERE `idApart` = 1 AND `expired` = 0");
// initialize all days as available
for ($i = 1; $i <= 30; $i++) {
$days[$i] = 'availableDay';
}
// mark the current day
$days[$curDay] = 'currentA';
while ($row = mysql_fetch_array($result)) {
$checkInresult = $row['checkin'];
$checkOutresult = $row['checkout'];
// run through occupied days
for ($i = $checkInresult; $i <= $checkOutresult; $i++) {
if ($i == $curDay) {
// we hit the current day again, so mark as occupied
$days[$i] = 'currentO';
} else {
// occupy any other day
$days[$i] = 'occupiedDay';
}
}
}
输出用途:
<td class="<?php echo $days[1]; ?>"><center>1</center></td>
答案 1 :(得分:1)
循环几天制作表格:
<tr>
<?php
for ( $day = 1; $day <= $days; $day++ ) {
if ( $weekend ) { echo '</tr><tr>'; }
echo '<td class="' . ${'day' .$day} . '"><center>' . $day . '</center></td>';
}
?>
</tr>
仍然需要弄清楚特定月份的$weekend
。