通过PHP脚本根据Android中的复选框单击填充MySQL表

通过PHP脚本根据Android中的复选框单击填充MySQL表,php,android,mysql,Php,Android,Mysql,我正在开发一个Android应用程序,它通过PHP脚本将应用程序中的数据发送到一个在线MYSQL数据库。该应用程序用于记录用户的输入值。我还有一个复选框,用于检查用户是否缺席,并且没有任何要填写的记录。数据库表中有一列称为“缺席”当用户在输入数据后单击Submit时,将标记为“否”。如果单击复选框,则“缺席”列将标记为“是”,并且iput字段的值将填充为0。因此,我试图做的是,如果用户输入值并单击Submit按钮,我调用AsyncTask并传递每个输入字段的值以及“缺席”列的字符串值 复选框代码

我正在开发一个Android应用程序,它通过PHP脚本将应用程序中的数据发送到一个在线MYSQL数据库。该应用程序用于记录用户的输入值。我还有一个复选框,用于检查用户是否缺席,并且没有任何要填写的记录。数据库表中有一列称为“缺席”当用户在输入数据后单击Submit时,将标记为“否”。如果单击复选框,则“缺席”列将标记为“是”,并且iput字段的值将填充为0。因此,我试图做的是,如果用户输入值并单击Submit按钮,我调用AsyncTask并传递每个输入字段的值以及“缺席”列的字符串值

复选框代码为:

boolean checked = ((CheckBox) v).isChecked();
if (checked) {
Toast.makeText(getApplicationContext(),"You are marked as absent for the Day.",Toast.LENGTH_SHORT).show();
String type = "insertDetails";
String absent = "Yes";
BackgroundAsyncTask asyncTask = new BackgroundAsyncTask(InsertDataActivity.this);
asyncTask.execute(type,enquiryValue,retailValue,collectionValue, bookingValue,evaluationValue,testDriveValue,homeVisitValue,
                            username,dateValue,absent);
异步任务代码为:

if (type.equals("insertDetails")){
            try {
                String enquiry = params[1];
                String retail = params[2];
                String collection = params[3];
                String booking = params[4];
                String evaluation = params[5];
                String test_drive = params[6];
                String home_visit = params[7];
                String user_name = params[8];
                String dateTime = params[9];
                String absent = params[10];

                URL url = new URL(insertData_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setDoInput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
                String post_data = URLEncoder.encode("enquiry", "UTF-8") + "=" + URLEncoder.encode(enquiry,"UTF-8") + "&"
                        + URLEncoder.encode("retail","UTF-8") + "="+ URLEncoder.encode(retail,"UTF-8") + "&"
                        + URLEncoder.encode("collection", "UTF-8") + "=" + URLEncoder.encode(collection,"UTF-8") + "&"
                        + URLEncoder.encode("booking", "UTF-8") + "=" + URLEncoder.encode(booking,"UTF-8") + "&"
                        + URLEncoder.encode("evaluation", "UTF-8") + "=" + URLEncoder.encode(evaluation,"UTF-8") + "&"
                        + URLEncoder.encode("test_drive", "UTF-8") + "=" + URLEncoder.encode(test_drive,"UTF-8") + "&"
                        + URLEncoder.encode("home_visit", "UTF-8") + "=" + URLEncoder.encode(home_visit,"UTF-8") + "&"
                        + URLEncoder.encode("user_name", "UTF-8") + "=" + URLEncoder.encode(user_name,"UTF-8") + "&"
                        + URLEncoder.encode("date", "UTF-8") + "=" + URLEncoder.encode(dateTime,"UTF-8")
                        +URLEncoder.encode("absent","UTF-8") + "=" + URLEncoder.encode(absent,"UTF-8");
用于向MYSQL发送数据的PHP脚本是:

    $enquiry = $_POST["enquiry"];
    $retail = $_POST["retail"];
    $collection = $_POST["collection"];
    $booking = $_POST["booking"];
    $evaluation = $_POST["evaluation"];
    $test_drive = $_POST["test_drive"];
    $home_visit = $_POST["home_visit"];
    $user_name = $_POST["user_name"];
    $update_date = $_POST["date"];
    $absent = $_POST["absent"];

    $mysql_qry1 = "INSERT INTO employee_details(enquiry,retail, 
    collection,booking, evaluation, test_drive, home_visit, name, date,time,absent) values ('$enquiry','$retail','$collection','$booking','$evaluation','$test_drive',
    '$home_visit','$user_name','$update_date','$time','$absent');";
$conn->query($mysql_qry1);
但这并没有产生期望的结果。当我尝试插入数据时,“缺席”列为空。有人能帮我吗?

您忘记了第一行末尾的post_数据初始化代码中的
+“&

+ URLEncoder.encode("date", "UTF-8") + "=" + URLEncoder.encode(dateTime,"UTF-8")
+ URLEncoder.encode("absent","UTF-8") + "=" + URLEncoder.encode(absent,"UTF-8");
结果,您将得到奇怪的日期,并且没有缺少的参数。只需在第一行末尾的post_数据初始化代码中添加
&

即可:

+ URLEncoder.encode("date", "UTF-8") + "=" + URLEncoder.encode(dateTime,"UTF-8")
+ URLEncoder.encode("absent","UTF-8") + "=" + URLEncoder.encode(absent,"UTF-8");

结果,您将得到奇怪的日期,并且没有缺少的参数。只需添加
&

伙计,有很多代码重复,有很多代码重复MG,那是我犯的愚蠢错误。非常感谢。你救了我一天。再次感谢:)天哪,那是我犯的愚蠢的错误。非常感谢。你救了我一天。再次感谢:)