Enregistrez les informations utilisateur dans un tableau, puis utilisez une boucle pour entrer dans la base de données mysql. Cependant, il arrive parfois que les informations des utilisateurs individuels soient saisies deux fois. Je ne sais pas où se trouve l'erreur logique.
Le code logique est le suivant
$data = array(); //用户信息数组
for($i=0;$i<count($data);$i++){
$sql = "INSERT INTO *********";
$result = mysql_query($sql);
//以下是录入统计成功与失败的数量
if($result){
$success_num[]=$i;
}else{
$error_num[]=$i;
}
}
//跳出循环,弹出结果给用户,并跳转到首页
$con = "成功上传".count($success_num)."条!- 失败:".count($error_num)."条";
echo "<script> alert('$con');parent.location.href='index.php'; </script>";
Ce qui est étrange en ce moment, c'est que les informations saisies par les utilisateurs individuels sont toujours exécutées deux fois (par exemple, le tableau soumis ne contient que 5 éléments, mais 10 enregistrements sont générés lors de la saisie dans la base de données)
90 % des entrées sont normales, seuls certains utilisateurs se produiront, veuillez donner quelques conseils
Cela se produit lorsque vous utilisez location.href pour sauter. Certains navigateurs peuvent soumettre à nouveau le formulaire deux fois dès qu'ils sont actualisés. Il existe plusieurs solutions. Je vais juste vous donner un exemple.
ajax pas de rafraîchissement
Lors de la soumission du front-end, le back-end génère un jeton et l'enregistre dans la session. Lors de la soumission au back-end, les deux jetons sont comparés Base de données pour vérification
Le backend utilise 301 ou 302 pour sauter
.
Je ne vois logiquement pas de problèmes particuliers. Je peux seulement dire qu'il se peut que votre front-end ait soumis deux requêtes, et d'une manière générale, lors de l'insertion de données, on juge généralement si l'utilisateur existe dans la base de données, mais vous n'avez pas porté ce jugement. En conséquence, dix enregistrements sont apparus
.Ce à quoi vous devriez penser est :
Avant l'insertion, jugez la valeur de la base de données, au moins avec un index unique.
En cas d'erreurs de saisie individuelles, cela dépend des données contenues dans vos $data.