我有另一个问题。
我在两个日期和两次之间显示门票时陷入困境。
我有以下表格字段:
开始日期|| ticketSDate,开始时间|| ticketSTime
结束日期|| ticketEDate,结束时间|| ticketETime
我想显示结束日期和结束时间大于或等于现在的所有门票 和 开始日期小于或等于现在
任何人都可以帮助我吗? 谢谢,本尼
<?php
$result = mysqli_query($con,"SELECT * FROM ticket WHERE ticketEDate >= NOW() AND ticketETime > NOW() AND ticketSDate <= NOW() ORDER by ticketSDate ASC");
while($row = mysqli_fetch_array($result, MYSQL_BOTH)) {
echo '<tr>
<td><h8>'. $row['ticketName'] .'</h8></td><br>
<td><h4><strong>Begin:</strong> ',date("d.m.Y", strtotime ($row['ticketSDate'])),' ', date('H:i', strtotime ($row['ticketSTime'])).' hr.<h4></td>
<td><h4><strong>Einde:</strong> ',date("d.m.Y", strtotime ($row['ticketEDate'])),' ', date('H:i', strtotime ($row['ticketETime'])).' hr.<h4></td>
<td><h4>'. $row['ticketDescription'] .'</h4></td>
<td><h4>'. $row['ticketID'] .' <input name="book" type="button" value="Koop een ticket" /></h4></td>
<br><br>
</tr>';
}
?>
答案 0 :(得分:1)
这是一个有缺陷的思考time
的概念。你在说
我想显示结束日期和结束时间更长的所有门票
所以这意味着在今天之后的日期,但时间仍然不是现在的情况,返回错误,这根本不合理。
所以你必须使用一些分组条件。例如,结束日期时间比现在大。
现在如果结束日期大于今天,那么忘记时间就没有意义了。
WHERE ticketEDate > NOW() OR (ticketEDate = NOW() AND ticketETime > NOW())
相同的概念开始。
一个非常简单和更好的解决方案是将日期时间存储为一个字段,然后您的查询非常简单。