提取最近两个小时的消息?
Pull messages from the last two hours?
我做了一个简单的聊天系统。我只想从数据库中提取我们的最后两条消息而不是完整的数据库。有人可以告诉我如何做到这一点吗?谢谢!
代码:
if (isset($_SESSION['id'])) {
$userId = $_SESSION['id'];
$username = $_SESSION['username'];
$userLabel = $_SESSION['nickname'];
}
$connect = mysqli_connect("", "", "", "root");
mysqli_select_db($connect, "root");
$result1 = mysqli_query($connect, "SELECT * FROM chat ORDER by id DESC");
while ($extract = mysqli_fetch_assoc($result1)) {
if ($extract['name'] == 'admin1') {
$color = '#D00003';
}
else if ($extract['name'] == 'admin2') {
$color = '#7E0002';
}
else {
$color = '#FFFFFF';
}
if ($extract['name'] == $userLabel) {
echo "
<div class='usermessage'>
<div class='mheader'>
<h2 style='color:".$color."'>" . $extract['time'] . "</h2>
<h3 style='color:".$color."'>" . $extract['name'] . "</h3>
</div>
<p>" . $extract['message'] . "</p>
</div>";
}
else {
echo "
<div class='message'>
<div class='mheader'>
<h2 style='color:".$color."'>" . $extract['time'] . "</h2>
<h3 style='color:".$color."'>" . $extract['name'] . "</h3>
</div>
<p>" . $extract['message'] . "</p>
</div>";
}
}
?>
你应该这样使用 SQL date_sub
:
SELECT *
FROM `chat`
WHERE `time` >= DATE_SUB(NOW(), INTERVAL 2 HOUR)
ORDER by `id` DESC
一种方法...
SELECT * FROM chat
where
DATE_SUB(CURDATE(),INTERVAL 120 MINUTE) <= date_col;
ORDER by id DESC
查看官方文档了解更多信息http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
我做了一个简单的聊天系统。我只想从数据库中提取我们的最后两条消息而不是完整的数据库。有人可以告诉我如何做到这一点吗?谢谢!
代码:
if (isset($_SESSION['id'])) {
$userId = $_SESSION['id'];
$username = $_SESSION['username'];
$userLabel = $_SESSION['nickname'];
}
$connect = mysqli_connect("", "", "", "root");
mysqli_select_db($connect, "root");
$result1 = mysqli_query($connect, "SELECT * FROM chat ORDER by id DESC");
while ($extract = mysqli_fetch_assoc($result1)) {
if ($extract['name'] == 'admin1') {
$color = '#D00003';
}
else if ($extract['name'] == 'admin2') {
$color = '#7E0002';
}
else {
$color = '#FFFFFF';
}
if ($extract['name'] == $userLabel) {
echo "
<div class='usermessage'>
<div class='mheader'>
<h2 style='color:".$color."'>" . $extract['time'] . "</h2>
<h3 style='color:".$color."'>" . $extract['name'] . "</h3>
</div>
<p>" . $extract['message'] . "</p>
</div>";
}
else {
echo "
<div class='message'>
<div class='mheader'>
<h2 style='color:".$color."'>" . $extract['time'] . "</h2>
<h3 style='color:".$color."'>" . $extract['name'] . "</h3>
</div>
<p>" . $extract['message'] . "</p>
</div>";
}
}
?>
你应该这样使用 SQL date_sub
:
SELECT *
FROM `chat`
WHERE `time` >= DATE_SUB(NOW(), INTERVAL 2 HOUR)
ORDER by `id` DESC
一种方法...
SELECT * FROM chat
where
DATE_SUB(CURDATE(),INTERVAL 120 MINUTE) <= date_col;
ORDER by id DESC
查看官方文档了解更多信息http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html