Php android将空行插入mysql
我正在研究如何预订停车位申请表。 现在,我要创建添加信息页面。 但android代码在mysql数据库中放置了空行。 网络连接正在工作,但mysql中插入了空数据行。 如何将数据插入mysql? 请帮帮我Php android将空行插入mysql,php,android,mysql,Php,Android,Mysql,我正在研究如何预订停车位申请表。 现在,我要创建添加信息页面。 但android代码在mysql数据库中放置了空行。 网络连接正在工作,但mysql中插入了空数据行。 如何将数据插入mysql? 请帮帮我 public class DateAndTime extends Activity { EditText Name, Mobile, Addrs, Fee; TextView Otime, Ctime; String pic,name, mobile, addrs, otime, ctim
public class DateAndTime extends Activity {
EditText Name, Mobile, Addrs, Fee;
TextView Otime, Ctime;
String pic,name, mobile, addrs, otime, ctime, fee;// 바꾸고 이미지도 추가.
ImageView Pic;
ViewFlipper flipper;
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
private GoogleApiClient client;
//View
private TextView mText1;
private TextView mText2;
private Button mPickDate1;
private Button mPickTime1;
private Button mPickDate2;
private Button mPickTime2;
private int mYear1;
private int mYear2;
private int mMonth1;
private int mMonth2;
private int mDay1;
private int mDay2;
private int mHour1;
private int mHour2;
private int mMinute1;
private int mMinute2;
static final int DATE_DIALOG_ID_1 = 0;
static final int TIME_DIALOG_ID_1 = 1;
static final int DATE_DIALOG_ID_2 = 2;
static final int TIME_DIALOG_ID_2 = 3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.avtivity_date_time);
mText1 = (TextView) findViewById(R.id.text1);
mPickDate1 = (Button) findViewById(R.id.pickDate1);
mPickTime1 = (Button) findViewById(R.id.pickTime1);
mText2 = (TextView) findViewById(R.id.text2);
mPickDate2 = (Button) findViewById(R.id.pickDate2);
mPickTime2 = (Button) findViewById(R.id.pickTime2);
mPickDate1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_DIALOG_ID_1);
}
});
mPickDate2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_DIALOG_ID_2);
}
});
mPickTime1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(TIME_DIALOG_ID_1);
}
});
mPickTime2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(TIME_DIALOG_ID_2);
}
});
final Calendar c = Calendar.getInstance();
mYear1 = c.get(Calendar.YEAR);
mMonth1 = c.get(Calendar.MONTH);
mDay1 = c.get(Calendar.DAY_OF_MONTH);
mHour1 = c.get(Calendar.HOUR_OF_DAY);
mMinute1 = c.get(Calendar.MINUTE);
mYear2 = c.get(Calendar.YEAR);
mMonth2 = c.get(Calendar.MONTH);
mDay2 = c.get(Calendar.DAY_OF_MONTH);
mHour2 = c.get(Calendar.HOUR_OF_DAY);
mMinute2 = c.get(Calendar.MINUTE);
updateDisplay();
Pic = (ImageView)findViewById(R.id.pic);
//flipper = (ViewFlipper)findViewById(R.id.flipper);
Name = (EditText) findViewById(R.id.et_owner);
Mobile = (EditText) findViewById(R.id.et_mob);
Addrs = (EditText) findViewById(R.id.et_addrs);
Otime = (TextView) findViewById(R.id.text1);
Ctime = (TextView) findViewById(R.id.text2);
Fee = (EditText) findViewById(R.id.et_fee);
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
public void updateDisplay() {
mText1.setText(String.format("시작 : %d년 %d월 %d일 %d시 %d분", mYear1, mMonth1 + 1, mDay1, mHour1, mMinute1));
mText2.setText(String.format("종료 : %d년 %d월 %d일 %d시 %d분", mYear2, mMonth2 + 1, mDay2, mHour2, mMinute2));
}
public DatePickerDialog.OnDateSetListener mDateSetListener1 =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mYear1 = year;
mMonth1 = monthOfYear;
mDay1 = dayOfMonth;
updateDisplay();
}
};
public DatePickerDialog.OnDateSetListener mDateSetListener2 =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mYear2 = year;
mMonth2 = monthOfYear;
mDay2 = dayOfMonth;
updateDisplay();
}
};
public TimePickerDialog.OnTimeSetListener mTimeSetListener1 =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour1 = hourOfDay;
mMinute1 = minute;
updateDisplay();
}
};
public TimePickerDialog.OnTimeSetListener mTimeSetListener2 =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour2 = hourOfDay;
mMinute2 = minute;
updateDisplay();
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID_1:
return new DatePickerDialog(this, mDateSetListener1, mYear1, mMonth1, mDay1);
case TIME_DIALOG_ID_1:
return new TimePickerDialog(this, mTimeSetListener1, mHour1, mMinute1, false);
case DATE_DIALOG_ID_2:
return new DatePickerDialog(this, mDateSetListener2, mYear2, mMonth2, mDay2);
case TIME_DIALOG_ID_2:
return new TimePickerDialog(this, mTimeSetListener2, mHour2, mMinute2, false);
}
return null;
}
public void saveInfo(View view) {
pic = null;
name = Name.getText().toString();
mobile = Mobile.getText().toString();
addrs = Addrs.getText().toString();
otime = Otime.getText().toString();
ctime = Ctime.getText().toString();
fee = Fee.getText().toString();
DateAndTime.BackgroundTask backgroundTask = new DateAndTime.BackgroundTask();
backgroundTask.execute(pic, name, mobile, addrs, otime, ctime, fee);
//finish();
}
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
public Action getIndexApiAction() {
Thing object = new Thing.Builder()
.setName("ParkAddInfo Page") // TODO: Define a title for the content shown.
// TODO: Make sure this auto-generated URL is correct.
.setUrl(Uri.parse("http://35.160.135.119/add_park_info.php"))
.build();
return new Action.Builder(Action.TYPE_VIEW)
.setObject(object)
.setActionStatus(Action.STATUS_TYPE_COMPLETED)
.build();
}
@Override
public void onStart() {
super.onStart();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client.connect();
AppIndex.AppIndexApi.start(client, getIndexApiAction());
}
@Override
public void onStop() {
super.onStop();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
AppIndex.AppIndexApi.end(client, getIndexApiAction());
client.disconnect();
}
class BackgroundTask extends AsyncTask<String, Void, String> {
String park_add_info_url;
@Override
protected void onPreExecute() {
park_add_info_url = "http://35.160.135.119/add_park_info.php"; // insert the Domain name http://androidtut.comli.com//add_info.php
}
@Override
protected String doInBackground(String... args) {
String pic, name, mobile, addrs, otime, ctime, fee;
pic = args[0];
name = args[1];
mobile = args[2];
addrs = args[3];
otime = args[4];
ctime = args[5];
fee = args[6];
try {
URL url = new URL(park_add_info_url);
HttpURLConnection httpURLConnection =(HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
StringBuilder stringBuilder = new StringBuilder("pic=");
stringBuilder.append(pic); stringBuilder.append("&owner="); stringBuilder.append(name); stringBuilder.append("&mobile=");
stringBuilder.append(mobile); stringBuilder.append("&addrs=");
stringBuilder.append(addrs); stringBuilder.append("&otime="); stringBuilder.append(otime); stringBuilder.append("&ctime=");
stringBuilder.append(ctime); stringBuilder.append("&fee="); stringBuilder.append(fee); stringBuilder.append("'");
String data_string = URLEncoder.encode(stringBuilder.toString(),"utf-8");
bufferedWriter.write(data_string);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
inputStream.close();
httpURLConnection.disconnect();
return "One row of data inserted..";
} catch (IOException e) {//TODO:check network dialog window
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
}
}
public类DateAndTime扩展活动{
编辑文本名称、手机、地址、费用;
文本视图Otime,Ctime;
字符串pic,name,mobile,addrs,otime,ctime,fee;//바꾸고 이미지도 추가.
图像视图;
视图翻转器翻转器;
/**
*注意:这是自动生成的,用于实现应用程序索引API。
*看https://g.co/AppIndexing/AndroidStudio 了解更多信息。
*/
私人谷歌客户;
//看法
私有文本视图mText1;
私有文本视图mText2;
专用按钮mPickDate1;
专用按钮mPickTime1;
专用按钮mPickDate2;
专用按钮mPickTime2;
私家侦探1;
私家侦探2;
私营机构1;
私人住宅2;
私人国际机场1号;
私人国际会议2日;
私人国际机场1号;
私人国际机场2号;
私人国际货币基金组织1;
私人int mMinute2;
静态最终整数日期对话框ID 1=0;
静态最终整数时间对话框ID 1=1;
静态最终整数日期对话框ID 2=2;
静态最终整数时间对话框ID 2=3;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.avtivity\u date\u time);
mText1=(TextView)findViewById(R.id.text1);
mPickDate1=(按钮)findViewById(R.id.pickDate1);
mPickTime1=(按钮)findViewById(R.id.pickTime1);
mText2=(TextView)findViewById(R.id.text2);
mPickDate2=(按钮)findViewById(R.id.pickDate2);
mPickTime2=(按钮)findViewById(R.id.pickTime2);
mPickDate1.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
showDialog(日期对话框ID对话框1);
}
});
mPickDate2.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
showDialog(日期对话框ID 2);
}
});
mPickTime1.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
showDialog(时间对话框ID 1);
}
});
mPickTime2.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
showDialog(时间对话框ID 2);
}
});
最终日历c=Calendar.getInstance();
mYear1=c.get(日历年);
mMonth1=c.get(日历月);
mDay1=c.get(日历日/月);
mHour1=c.get(日历小时);
mMinute1=c.get(日历分钟);
mYear2=c.get(日历年);
mMonth2=c.get(日历月);
mDay2=c.get(日历日/月);
mHour2=c.get(日历小时);
mMinute2=c.get(日历分钟);
updateDisplay();
Pic=(ImageView)findViewById(R.id.Pic);
//flipper=(ViewFlipper)findViewById(R.id.flipper);
Name=(EditText)findViewById(R.id.et_所有者);
Mobile=(EditText)findviewbyd(R.id.et_mob);
Addrs=(EditText)findViewById(R.id.et_Addrs);
Otime=(TextView)findViewById(R.id.text1);
Ctime=(TextView)findViewById(R.id.text2);
费用=(编辑文本)findViewById(R.id.et_费用);
//注意:这是自动生成的,用于实现应用程序索引API。
//看https://g.co/AppIndexing/AndroidStudio 了解更多信息。
client=new GoogleApiClient.Builder(this.addApi(AppIndex.API).build();
}
public void updateDisplay(){
mText1.setText(String.format(“시작 : %D년 %D월 %D일 %D시 %D분", mYear1,mMonth1+1,mDay1,mHour1,mMinute1);
mText2.setText(String.format(“종료 : %D년 %D월 %D일 %D시 %D분“,mYear2,mMTH2+1,mDay2,mHour2,mMinute2”);
}
public DatePickerDialog.OnDateSetListener mDateSetListener1=
新建DatePickerDialog.OnDateSetListener(){
@凌驾
公共void onDateSet(日期选择器视图,整数年,整数月,整数月){
mYear1=年;
mMonth1=一年一个月;
mDay1=每月的第几天;
updateDisplay();
}
};
public DatePickerDialog.OnDateSetListener mDateSetListener2=
新建DatePickerDialog.OnDateSetListener(){
@凌驾
公共void onDateSet(日期选择器视图,整数年,整数月,整数月){
mYear2=年;
mMonth2=一年一个月;
mDay2=每月的第几天;
updateDisplay();
}
};
公共时间选择器Dialog.OnTimeSetListener MTTimeSetListener1=
新的TimePickerDialog.OnTimeSetListener(){
@凌驾
时间集上的公共void(时间选择器视图,整数小时日,整数分钟){
mHour1=小时/天;
mMinute1=分钟;
updateDisplay();
}
};
公共时间选择器Dialog.OnTimeSetListener MTTimeSetListener2=
新的TimePickerDialog.OnTimeSetListener(){
@凌驾
时间集上的公共void(时间选择器视图,整数小时日,整数分钟){
mHour2=小时/天;
mMinute2=分钟;
updateDisplay();
}
};
@凌驾
受保护的对话框onCreateDialog(int id){
开关(id){
案例日期\u对话框\u ID\u 1:
返回新的DatePickerDialog(this,mDateSetListener1,mYear1,mMonth1,mDay1);
案例时间\u对话框\u ID\u 1:
返回新的TimePickerDialog(this,mTimeSetListener1,mHour1,mMinute1,false);
案例日期\u对话框\u ID\u 2:
返回新的DatePickerDialog(this,mDateSetListener2,mYear2,mMonth2,mDay2);
案例时间\u对话框\u ID\u 2:
返回新的TimePickerDialog(this,mTimeSetListener2,mHour2,mMinute2,false);
}
返回null;
}
公共void saveInfo(视图){
pic=null;
name=name.getText().toString();
mobile=mobile.getText().toString();
addrs=addrs.getTex
<?php
require "time_init.php"; //connecting mysql
$pic = $_POST["pic"];
$owner = $_POST["owner"];
$mobile = $_POST["mobile"];
$addrs = $_POST["addrs"];
$otime = $_POST["otime"];
$ctime = $_POST["ctime"];
$fee = $_POST["fee"];
$sql = "INSERT INTO park_info VALUES ('$pic', '$owner', '$mobile', '$addrs', '$otime', '$ctime', '$fee');";
mysqli_query($con, $sql)
?>