【发布时间】:2014-03-09 20:16:10
【问题描述】:
有人可以帮我解决以下问题吗?
我有一个基本的事件数据库,每个事件都有一个特定的 date_in、time_in、date_out 和 time_in,我试图在 html 表中显示它们。与查询结果的数据库日期/时间相比,我希望根据当前日期/时间更改结果背景颜色。
我已经通过 MySQL WHERE 想出了一个相当复杂的方法,但是这是很多冗余编码,我希望找到一种方法来使用和 IF ELSE 语句上的
这是我使用 MySQL SELECT 和 WHERE 语句找到的解决方案,但是我有几个这样的语句,它创建了一组凌乱的冗余代码。
我的条件是:
如果 category = "jet" and date_in = $today and result time
ElseIf category = "jet" and date_in = $today and result time >= 1 hour from $time ... 执行代码(白色背景查询)
Else category = "jet" and date_in != $today ... 执行代码(灰色背景查询)
然后我需要为另外 5 个飞机类别重新执行此操作,这会创建大量冗余代码和多个选择语句。
这只是一个 sn-p,我知道可能有很复杂的方法可以做到这一点,但这对于新的 MySQL/PHP 编码器来说是非常基本的。
//Gather TIMEZONE, CURRENT TIME, and ACTION TIME
$set_timezone = date_default_timezone_set('America/New_York');
$today = date('m/d/Y');
$time = date('Hi');
// Build the SELECT statement for JET Aircraft
$select_JETaircraft = "SELECT * FROM aircraft_data WHERE ac_cat = 'Jet' AND (date_in = '$today' AND time_in <= '$time') ORDER BY time_in ASC";
// Run the query
$result = mysql_query($select_JETaircraft);
while($row = mysql_fetch_array($result)){ //Creates a loop to loop through results
?>
<tr class="datacolor_past">
<td><?php echo "<a href='javascript:delete_aircraft(" . $row['aircraft_id'] . ");'>X</a>"; ?></td>
<td> </td>
<td><?php echo $row['faa_id']; ?></td>
<td><?php echo $row['ac_type']; ?></td>
<td><?php echo $row['date_in'] . " - " . $row['time_in']; ?></td>
<td><?php echo $row['date_out'] . " - " . $row{'time_out'}; ?></td>
<td><?php echo $row['services']; ?></td>
<td><?php echo $row['comments']; } ?></td>
</tr>
上面的示例可以在here 找到,它在午夜时分可以工作,除了一些错误。
我希望提出与此类似的解决方案……但我无法获得处理的逻辑。
// Build the SELECT statement for JET Aircraft PAST Action Time
$select_JETaircraft = "SELECT * FROM aircraft_data WHERE ac_cat = 'Jet' ORDER BY time_in ASC";
// Run the query
$result = mysql_query($select_JETaircraft);
while($row = mysql_fetch_array($result)){ //Creates a loop to loop through results
?>
<tr
<?php
$JETdate_in = $row['date_in'];
$JETtime_in = $row['time_in'];
if ($JETdate_in = $today)
{
echo 'class="datacolor_current"';
}
else
{
echo 'class="datacolor_past"';
}
?>
>
<td><?php echo "<a href='javascript:delete_aircraft(" . $row['aircraft_id'] . ");'>X</a>"; ?></td>
<td> </td>
<td><?php echo $row['faa_id']; ?></td>
<td><?php echo $row['ac_type']; ?></td>
<td><?php echo $row['date_in'] . " - " . $row['time_in']; ?></td>
<td><?php echo $row['date_out'] . " - " . $row['time_out']; ?></td>
<td><?php echo $row['services']; ?></td>
<td><?php echo $row['comments']; } ?></td>
</tr>
可以在here 找到上述示例,其中仅显示“JET”代码。它运行但只显示 class="datacolor_current" 而不管数据库查询的结果如何。
如果我需要进一步澄清,请告诉我...谢谢!
【问题讨论】: