如何显示过去一小时内有时间戳值的行?
这是我现在所拥有的,它显示最新的行,因为LIMIT只显示3行。
$query5= mysql_query("SELECT * FROM `made_orders` ORDER by id DESC LIMIT 0,3");
WHILE($datarows5 = mysql_fetch_array($query5)):
$name4 = $datarows5['Name'];
$phone4 = $datarows5['Phone'];
$entree4 = $datarows5['Entree'];
$side14 = $datarows5['Side 1'];
$side24 = $datarows5['Side 2'];
$drink4 = $datarows5['Drink'];
$totalcost4 = $datarows5['Total Cost'];
$ip4 = $datarows5['Ip'];
$id4 = $datarows5['id'];
$time4 = $datarows5['timestamp'];
echo "<iframe src=\"creatmeal-data.php?id={$id4}\" width=\"430px\" style=\"border:0px\" height=\"350px\"/></iframe>";
endwhile; ?>
在上面的代码中,每次找到一行时,它都会回显一个iframe。如何编辑查询以使用我的时间戳列仅在一小时内显示最新信息。
提前感谢您的帮助!
编辑:以下是我的时间戳列:http://img856.imageshack.us/img856/4135/columnk.png
答案 0 :(得分:18)
您当前的查询会获得最近的三个订单,无论它们是否是在过去一小时内创建的。
使用此解决方案:
SELECT *
FROM made_orders
WHERE timestamp >= NOW() - INTERVAL 1 HOUR
ORDER BY timestamp DESC
LIMIT 3
这将在最后一小时内获得最多三个订单。如果在最后一小时内只有一个订单,则只会选择一行。
答案 1 :(得分:1)
SELECT * FROM made_orders
ORDER by id WHERE UNIX_TIMESTAMP(yourTimestampColumn
)&gt; UNIX_TIMESTAMP() - 60 * 60