从as3向mysql数据库发送变量时,表中的行重复

时间:2013-06-12 15:02:00

标签: mysql actionscript-3 duplicates rows

我正在使用两个输入框和一个提交按钮在我的网站上制作Flash内容。 用户应填写方框(学校和学生)并提交。 数据库表是一个自动增量列和每个变量的列。 问题是当提交和发送值时,表增加2行,具有相同的值。 这是我的代码:

import flash.events.Event;
import flash.net.URLRequest;

validate_btn.addEventListener (MouseEvent.CLICK, Validate);

function Validate (e:Event)     {
var Variables:URLVariables = new URLVariables();
var Request:URLRequest = new URLRequest("participant.php");
var Loader:URLLoader = new URLLoader();

Variables.school = escape(school_txt.text);
Variables.student = escape(student_txt.text);
Request.method = URLRequestMethod.POST;
Request.data = Variables;
Loader.dataFormat = URLLoaderDataFormat.VARIABLES;
Loader.addEventListener(Event.COMPLETE, Complete);
Loader.load(Request);

navigateToURL(Request, "participant.php");
}

function Complete(e:Event) {
ntext = unescape(e.target.data.x);
gotoAndStop(2);
}

<?php
$school = urldecode($_POST['school']);
$student = urldecode($_POST['student']);
$flag = 0;

$connection = mysql_connect("localhost","root","");
if (!$connection) {
die (mysql_error());
}

$db_select = mysql_select_db("db_school", $connection);
if (!$db_select) {
die(mysql_error());
}

mysql_query("INSERT INTO School (school, student, flag)
VALUES ('$school','$student','$flag')") 
or die(mysql_error());

if(isset($connection)) {
mysql_close($connection);
}

echo "x=participation successfully record";
?>

那它有什么问题?

1 个答案:

答案 0 :(得分:0)

在你的代码中你有两个命令,它们都做同样的事情:

Loader.load(Request);

navigateToURL(Request, "participant.php");

所以你只需要使用其中一个。要在Complete()函数中获得适当的响应,请使用第一个。

我试过自己做。它适用于两个命令! (第二个命令不会导致Flex中的反应,因为它不应该这样做。)