发生这个情况,代码你提交的时候对按钮进行了双击。这个时候,你可以加入验证码的验证(这就是验证码的作用,防止重复提交),还用再sql语句中进行比对,如时间验证(在一定时间内同一个ip不能提交),标题或者其他验证(验证标题是否重复)等,来排除插入2条数据的问题!
钢城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
SELECT COUNT(*) FROM a, b WHERE a.dingdan = b.dingdan
然后用PHP执行这个sql_query,读取结果即可(第一行第一列)
1. 在用mysql查询的时候,用group by (某一个字段) 将其查询结果合并;
或者;
2. 查询条件用limit 1 限制查询结果条数,反正内容一样,你就要一条即可;
其实很简单,你要抓住一点:mysql_fetch_row,mysql_fetch_array这样的函数,会在执行一次之后,把指针往后推移一次。你下面成功的代码中,mysql_fetch_row用的同一个资源句柄作为参数,while里面执行了一次,推移一次指针,if里面再执行的时候,就会是后面一条记录了。但是,你失败的代码里,$Query,$SQuery并不是同一个资源句柄,第一次执行推移$Query,而不是$SQuery.懂了么?
这是url传递参数的代码:
XML/HTML code?
td align="left"a href="choose.php?relation_id='.$row['user_id'].'user_id='.$_COOKIE['user_id'].'"一键关注/a/td
;
这是插入数据库的代码:
PHP code?
?php
header("Content-Type:text/html; charset=utf-8");
include('MY_PHP_file/mysql_connect.php');
$user_id = $_GET['user_id'];
$relation_id = $_GET['relation_id'];
$sql = "INSERT INTO user_action (user_id, relation_id, concern_time) VALUES ('$user_id', '$relation_id', now())";
$state = mysql_query($sql);
if($state)
{
echo "scriptalert('一键关注成功!!'); location.href='user_action.php';/script";
}
else
echo 'scriptalert("一键关注失败,请重试!!"); location.href="user_action.php";/script';
?
$state = mysql_query($sql);
if($state)
按我的理解这里执行了两次。
解决方法直接是 if(mysql_query($sql))就可以了