Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 代码存在时的增量值_Php_Mysql_Html - Fatal编程技术网

Php 代码存在时的增量值

Php 代码存在时的增量值,php,mysql,html,Php,Mysql,Html,我有一个MySQL表,有两列,第一列是IP地址,第二列是整数,应该递增 当一个新的IP访问该网站时,对应于该IP的整数应该增加1。 PHP脚本还应该处理数据库中已经存在IP地址的情况 这用于更新整数: UPDATE user SET points = points + 1 WHERE code = '$u' 这是为了向数据库添加一个新的ip(我使用“unique”属性,不能保存双值): 现在,我希望只有当一个新的IP访问该网站时,整数才会增加1。如果我能减少两个查询并在一个查询中完成工作,那就

我有一个MySQL表,有两列,第一列是IP地址,第二列是整数,应该递增

当一个新的IP访问该网站时,对应于该IP的整数应该增加1。 PHP脚本还应该处理数据库中已经存在IP地址的情况

这用于更新整数:

UPDATE user SET points = points + 1 WHERE code = '$u'
这是为了向数据库添加一个新的ip(我使用“unique”属性,不能保存双值):


现在,我希望只有当一个新的IP访问该网站时,整数才会增加1。如果我能减少两个查询并在一个查询中完成工作,那就太好了。谢谢你的帮助。

是的,你可以用这样的东西

INSERT INTO table (ip, code, points) values ('ip value', 'code value', 1) ON DUPLICATE KEY UPDATE points = points + 1 WHERE ip = 'ip value';
请注意,您需要在ip上使用主键或唯一索引才能使其正常工作。我不确定“code”值代表什么,因此如果update子句也是唯一键,那么它实际上可能会有问题


请注意,我在insert子句中为点添加了一个初始值1。

在重复键更新用户设置点=点+1,其中代码=“$u”


在MYSQL表中,有
DEFAULT=1

您可以使用以下方法将两者合并在一起:


首先检查表中是否存在IP。如果没有,请插入。如果是的话,你可以更新。使用php检查IP是否存在并更新计数。谢谢!正是我所需要的:)
INSERT INTO table (ip, code, points) values ('ip value', 'code value', 1) ON DUPLICATE KEY UPDATE points = points + 1 WHERE ip = 'ip value';
INSERT INTO visitors (ip, code, counter) VALUES (INET_ATON($ip), '$code', 1) ON DUPLICATE KEY UPDATE counter = counter + 1;