获取DatePicker值以存储到Android的php mysql中

时间:2015-03-01 17:13:54

标签: php android mysql date datepicker

每个人都好!

我目前正在研究如何使用android的日期选择器将日期值放入我的php mysql中。我的计划是从一个日期选择器中获取数据,以及它将被放入mysql的价值。由于某种原因,没有错误,但只是输入值' 0000-00-00'每次我把它放到我的数据库中进入mysql。以下是我的java android代码。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_datetime);

    //setup strict mode policy
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    timePicker = (TimePicker) findViewById(R.id.timePicker);
    timePicker.setIs24HourView(true);
    datePicker = (DatePicker) findViewById(R.id.datePicker);
    //lblTime = (TextView) findViewById(R.id.lblTime);
    btnAddTime = (Button) findViewById(R.id.btnAddTime);

    btnAddTime.setOnClickListener(new View.OnClickListener() {

        InputStream is = null;
        @Override
        public void onClick(View v) {

            //String time = lblTime.getText().toString();
            //String time = timePicker.getCurrentHour() + ":" + timePicker.getCurrentMinute() + ":" + "00";
            String date = datePicker.getYear() + "-" + datePicker.getMonth() + 1 + "-" + datePicker.getDayOfMonth();


            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);

            nameValuePairs.add(new BasicNameValuePair ("date", date));

            try {

                //setting up the default http client
                HttpClient httpClient = new DefaultHttpClient();

                //setting up the http post method and passing the url in case
                //of online database and the ip address in case of localhost database
                //and the php file which serves as a link between the android app
                //and the database.
                HttpPost httpPost = new HttpPost("http://10.0.2.2/add_time.php");

                //passing the nameValuePairs inside the httppost
                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                //getting the response
                HttpResponse response = httpClient.execute(httpPost);

                //setting up the entity
                HttpEntity httpEntity = response.getEntity();

                //setting up the content inside an input stream reader
                //lets define the input stream reader
                is = httpEntity.getContent();

                //Toast message if the data is successfully entered
                Toast.makeText(getApplicationContext(), "Date entered succesfully", Toast.LENGTH_LONG).show();
            }
            catch (ClientProtocolException e) {

                Log.e("ClientProtocol", "Log_tag");
                e.printStackTrace();
            }
            catch (IOException e) {
                Log.e("Log tag", "IOException");
                e.printStackTrace();

            }
        }

    });

以下是我的PHP代码:

<?php
error_reporting(E_ALL ^ E_DEPRECATED);

$con = mysql_connect('localhost', 'root', '');
mysql_select_db('testdb', $con);

$date = $_POST['date'];

mysql_query("Insert into datetable (date) values('{$date}')");


?>

我将非常感谢有人可以帮助我,谢谢!

2 个答案:

答案 0 :(得分:0)

首先你不打电话

 datePicker.init(year, month, day, dateSetListener);

其次你还没有实现OnDateChangedListener

  private DatePicker.OnDateChangedListener dateSetListener = new DatePicker.OnDateChangedListener() {

        public void onDateChanged(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {

// Use these values to pass....

        }
    };

答案 1 :(得分:0)

第1步:

首先,您需要日期字段数据类型在表

中为varchar(10)

第2步:

 int month = f_date.getMonth();
 int crrntmonth = month + 1 ;
String date = f_date.getYear() + "-" + crrntmonth + "-" + f_date.getDayOfMonth();