【问题标题】:Multiple ResultSet to variable PHP多个 ResultSet 到变量 PHP
【发布时间】:2014-06-12 20:36:51
【问题描述】:

在我的数据库中,我有表储量,在储量上我插入了以下数据:

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

    $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 数据。可能吗?还是太混乱了? :s

【问题讨论】:

  • 您只使用第一行和 mysql_result。试试 while($row=mysql_fetch_array()){...}
  • @colburton 但它适用于我拥有的“如果”?以及它是如何工作的?抱歉,我是 php/sql 的新手:/
  • 你的意思是像"SELECT DAYOFMONTH(checkIn), DAYOFMONTH(checkOut) FROM reserves...? And: $checkResults = mysql_fetch_assoc(mysql_query(...`?
  • @bloodyKnuckles 不,我在结果集上有 2 个数据,我正在执行的查询只显示第一个,我想将两者都放在同一个变量中。

标签: php html mysql css database


【解决方案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>

【讨论】:

  • 这是我拥有的完整代码jsfiddle.net/psyko/8LVub我按照你说的方式尝试了,但出现了一些错误:/
【解决方案2】:

然后循环几天来制作表格:

<tr>

<?php

for ( $day = 1; $day <= $days; $day++ ) {
    if ( $weekend ) { echo '</tr><tr>'; }
    echo '<td class="' . ${'day' .$day} . '"><center>' . $day . '</center></td>';
}

?>

</tr>

仍然需要弄清楚特定月份的 $weekend 是什么。

【讨论】:

  • man太棒了,它的工作没有那么多ifs:p但现在只显示第二个数据xD
  • 我是用@colburton 版本做的,但我用你的方法做表,不知道,谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多