<?php
define('INCLUDE_CHECK',true);
error_reporting(0);
session_name('tzLogin');
session_start();
$user = $_SESSION['name'];
if($user or die('Please login to continue')) {
mysql_connect("localhost","root","password");
mysql_select_db('db_account');
require_once 'Functions/Import.php';
$l = isset ( $_GET [ 'l' ] ) ? $_GET [ 'l' ] : null ;
if ( ! is_null ( $l ) ) {
$gd= mysql_query("SELECT * FROM t_account WHERE name='$user' AND (now() - INTERVAL 6 HOUR > lastvoted)");
if($gd or die("Come back later you still have time left to vote"))
{
$qry = "UPDATE t_account SET `vo` = `vo` + 1, `lastvoted` = now() WHERE name='$user'";
$result = @mysql_query($qry);
}
else {
}
header ( 'Location: ' . base64_decode ( $l ) , true , 301 ) ;
exit ;
}
}
?>
我没有得到所需的结果。
我已经尝试过你告诉我的内容,并且我以这种方式制作了代码
但仍然会执行查询而不是让msg“稍后再回来”查询应该只在存储的时间早于实时时间提前6小时才能生效
:(请帮帮我
答案 0 :(得分:0)
您的查询完全错误。 MySQL中的date()
不会像在PHP中那样将日期值“格式化”为字符串。 MySQL的date()
提取日期时间值的日期部分并将其作为字符串返回,例如
date('2013-04-21 12:00:00') -> '2013-04-21'
NOT 混合php和mysql日期逻辑。 MySQL完全能够通过now()
和CUR_DATE
及其他各种功能生成“现在”日期。
SELECT ... WHERE (now() - INTERVAL 6 HOUR > lastvoted)
UPDATE ... `lastvoted` = now()
就是你所需要的一切。