多个ResultSet变量PHP

时间:2014-06-12 11:16:09

标签: php html mysql css database

在我的数据库中,我有表预留,在储备中我插入了以下数据:

enter image description here

然后我使用了以下查询(这只是一部分):

    $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>

结果如下:

enter image description here

我希望第二个数据也能用红色标记,而不会产生太多ifs,因为同一个变量包含来自两个数据的checkIn和checkOut数据。可能吗?还是太混乱了? :■

2 个答案:

答案 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