select * from user where names='test';:——sql语句
update user SET num=$nums where names = '$test';:——sql增加次数语句
114:——$nums数据库里的储存次数+1
113:——$row['num']数据库里的储存次数
1:——$row['id']user表里的ID
test:——$row['names']数据库里的test数据
这个是names值的访问点击次数。奇怪的是一个链接点击的话,次数是每次增加2,而这个链接新窗口打开运行,却只增加一次,刷新同样增加一次
这是什么原因呀?哪里出错了?以下是查询更新语句和创建表的内容。
$test = $_GET['names'];
$sql = "select * from user where names='$test'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$nums = $row['num']+1;
mysql_query("update user SET num=$nums where names = '$test'");
或者:mysql_query("update user SET num=$num+1 where names = '$test'");
CREATE TABLE IF NOT EXISTS `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`names` varchar(15) NOT NULL DEFAULT '',
`num` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `names` (`names`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;
INSERT INTO `user` (`id`, `names`, `num`) VALUES
(1, 'test', 0);
<a href="?names=test" target=_blank>当前页面 - href="?names=test"</a>
点击页面链接,增加两次次数记录,右键链接新窗口打开运行和当前页面刷新只增加一次记录!很是奇怪,到底我哪做错了?
------解决思路----------------------
看你的描述是比较奇怪,可以这样调试。
<?php
$test = $_GET['names'];
$sql = "select * from user where names='$test'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
file_put_contents('sos.txt', $row['num'].PHP_EOL,FILE_APPEND );
$nums = $row['num']+1;
file_put_contents('sos.txt', $nums.PHP_EOL,FILE_APPEND );
mysql_query("update user SET num=$nums where names = '$test'");
file_put_contents('sos.txt', 'update'.PHP_EOL,FILE_APPEND );
?>
运行后看看sos.txt,是否3句,如果六句那就表示执行了两次。
------解决思路----------------------
可以确定你的php没有问题,看看那里调用多次了。
看看firebug network那里的请求