PHP& mySQL:查询表以查看日期+ IP组合是否存在

时间:2011-10-26 16:07:03

标签: php mysql forms date timestamp

3 个答案:

答案 0 :(得分:1)

您的结构是正确的,要使用两个条件进行查询,只需向其添加 AND

$query = "SELECT COUNT(ip) AS count FROM contest WHERE ip = '$ip' AND DATE(date) = CURDATE()";

这会计算竞赛表中包含该IP的所有行以及在该特定日期提交的行。请注意,我将“date”作为您的字段名称,因为我不知道您的表格结构,因此请将其调整为您创建的表格。

修改 我刚刚注意到您使用NOW()将日期时间存储在数据库中,因此我更改了查询以使用DATE()函数。这将提取值的日期或日期时间表达式的日期部分,如here所示。

希望这有帮助!

答案 1 :(得分:-1)

你想要做类似的事情:

$count = mysql_num_rows(mysql_query("SELECT * FROM contest WHERE IP ='".$IP."'"));

if($count > 0) {
$error = '<div class="error_message">Sorry, username already taken.</div>';
}

简单地说,您只是查询数据库以查看是否存在IP,请注意,这应该包含在if(isset($_POST['add_user'])) { }中以检测表单是否确实仅由此表单ID提交。

答案 2 :(得分:-2)

你可以使用strtotime('midnight')来获取今天开始的时间戳。当您在查询中包含此内容时,请确保mysql仅返回今天的条目:

$query = "SELECT COUNT(ip) AS count FROM contest WHERE ip = '$ip' AND DATE > " . strtotime('midnight');