Php 从中选择并插入
我正在写剧本,但不行。 当用户发表文章时,将插入NOW()。我想制作一个脚本,在这个脚本中,当用户的最后一篇文章与他现在想发表的文章至少相差10分钟时,他才能发表文章。我不想使用cookies,因为人们可以删除它们 我现在有这个代码,但不知道如何继续。谢谢大家!Php 从中选择并插入,php,mysql,sql,select,insert,Php,Mysql,Sql,Select,Insert,我正在写剧本,但不行。 当用户发表文章时,将插入NOW()。我想制作一个脚本,在这个脚本中,当用户的最后一篇文章与他现在想发表的文章至少相差10分钟时,他才能发表文章。我不想使用cookies,因为人们可以删除它们 我现在有这个代码,但不知道如何继续。谢谢大家! if ($db_found) { $sql1="SELECT send_time FROM bloopp WHERE email='$email' ORDER BY id DESC LIMIT 1"; while($ro
if ($db_found) {
$sql1="SELECT send_time FROM bloopp WHERE email='$email' ORDER BY id DESC LIMIT 1";
while($row = mysqli_fetch_array($result)) {
$last_post = $row['send_time'];
}
if ($last_post + 600 >= NOW() {
sql2 = "INSERT INTO bloopp (bloopp, browser, medium, send_time, email) VALUES
('$bloopp', '$browser', 'desktop', NOW(), '$email')";
$result = mysql_query($sql);
if($result) {
header('Location: index.php');
}
else {
echo "ERROR";
}
}
}
在查询中,您有:
sql2 = "INSERT INTO bloopp (bloopp, browser, medium, send_time, email) VALUES ('$bloopp', '$browser', 'desktop', NOW(), '$email')";
$result = mysql_query($sql);
不应该;不是吗
$sql = "INSERT INTO bloopp (bloopp, browser, medium, send_time, email) VALUES ('$bloopp', '$browser', 'desktop', NOW(), '$email')";
在处理时间问题时,请注意sql2/$sql替换,如果您完全依赖数据库,它会很方便。这避免了将数据库的时间概念与PHP混淆,PHP可能位于不同的服务器上和/或具有不同的时间配置 所以,试着找到最近十分钟发的帖子,如果没有,你知道你可以去
SELECT COUNT(*) AS recent_posts
FROM bloopp
WHERE email=? AND (UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(send_time))<600;
选择COUNT(*)作为最近发布的内容
来自布洛普
其中email=?和(UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(send_time))假设您有表用户
user_table:
id
email
bloop:
email
browser
....
Select * from user_table left join ( select max(send_time),email from bloop where email=$email ) max_sel on max_sel.email = user_table.email...
类似这样的操作会让用户获得他的最新帖子(对于没有帖子的新用户,请选中put left joins,为空),将日期放入会话中,当他发布更新内容时,诸如此类,您知道如何做到这一点
关于在登录时使用左连接获取他的最后一篇文章,在他发布文章后替换会话中的内容…你看go@KA_lin因为它都是同一个表,所以我需要进行左联接吗?我不太熟悉联接。我正在尝试理解您的代码。:)我有两个问题:我必须把这个放在哪里?为什么你要使用count(*)?你执行这个查询来找出他们在过去十分钟内发表了多少篇文章-如果没有,你可以自由发表一篇新文章。您的代码在结果集周围循环,这是不必要的。这个查询总是返回一行。那么这个代码会替换上面的所有内容吗?但当浏览器关闭时,会话将过期,还是我错了?:)是的,它将过期,但您必须使用建议的查询(更改WHERE子句)让他重新登录。这是一个概念,你必须调整它一点,但如果它过期,用户关闭浏览器并在10分钟前回来,他将能够再次发布内容?如果他在登录后10分钟前回来,你有他在会话中的最后发布日期,你可以使按钮变灰或发出警告消息,告诉他我不需要设置cookie吗?