通过PHP脚本根据Android中的复选框单击填充MySQL表
我正在开发一个Android应用程序,它通过PHP脚本将应用程序中的数据发送到一个在线MYSQL数据库。该应用程序用于记录用户的输入值。我还有一个复选框,用于检查用户是否缺席,并且没有任何要填写的记录。数据库表中有一列称为“缺席”当用户在输入数据后单击Submit时,将标记为“否”。如果单击复选框,则“缺席”列将标记为“是”,并且iput字段的值将填充为0。因此,我试图做的是,如果用户输入值并单击Submit按钮,我调用AsyncTask并传递每个输入字段的值以及“缺席”列的字符串值 复选框代码为:通过PHP脚本根据Android中的复选框单击填充MySQL表,php,android,mysql,Php,Android,Mysql,我正在开发一个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,那是我犯的愚蠢错误。非常感谢。你救了我一天。再次感谢:)天哪,那是我犯的愚蠢的错误。非常感谢。你救了我一天。再次感谢:)