当前位置: 首页 > 面试题库 >

总小时数无法从Android插入MySQL

龙玄天
2023-03-14
问题内容

我使用以下公式获得总时数:

 public void updateTotalHours()
    {
        int a = SplitTime(objMyCustomBaseAdapter.getFistTime());
        int b = SplitTime(objMyCustomBaseAdapter.getLastTime());
        long difference = 0;
        if (a > b) {
            difference = (b + (24 * 60) - a) - (1 * 60);
            int minutes = (int) (difference % 60);
            int hours = (int) ((difference / 60) % (24 * 60));
            totalHours.setText(("Total hours : " + hours + ":" + minutes));

        } else {
            difference = (b - a) - (1 * 60);
            int minutes = (int) (difference % 60);
            int hours = (int) ((difference / 60) % (24 * 60));
            totalHours.setText(("Total hours : " + hours + ":" + minutes));
        }
    }
        }

获得 totalHours之后 ,我尝试将其转换为String并保存为MySQL

     TotalHours=totalHours.getText().toString();
      String[] time= TotalHours.split(":", 2);
   Toast.makeText(getApplicationContext(),time[1].trim(),Toast.LENGTH_LONG).show();
      addInformation(name, weather, date2, status, first1[1], last1[1],time[1]);

addInformation

 public class AddInfo extends AsyncTask<String, Void, ContentValues> {

        private final Context context;
        ProgressDialog loading;

        public AddInfo(Context context) {
            this.context = context;
        }

        private ContentValues handleActionSend(String name, String weather, String date2, String status, String timeIn, String timeOut, String hours) {
            ContentValues retour = new ContentValues();
            retour.put("success", false);

            try {
                HttpPost post = new HttpPost(Configs.ADD_INFORMATION);
                post.addHeader("Accept", "application/json");
                List<NameValuePair> postParams = new ArrayList<NameValuePair>();
                postParams.add(new BasicNameValuePair(Configs.KEY_USER_NAME, name));
                postParams.add(new BasicNameValuePair(Configs.KEY_WEATHER, weather));
                postParams.add(new BasicNameValuePair(Configs.KEY_DATE, date2));
                postParams.add(new BasicNameValuePair(Configs.KEY_STATUS, status));
                postParams.add(new BasicNameValuePair(Configs.KEY_TIMEIN, timeIn));
                postParams.add(new BasicNameValuePair(Configs.KEY_TIMEOUT, timeOut));
                postParams.add(new BasicNameValuePair(Configs.KEY_TOTALHOURS,hours));

                post.setEntity(new UrlEncodedFormEntity(postParams, HTTP.UTF_8));
                HttpClient client = new DefaultHttpClient();

                HttpResponse response = client.execute(post);

                BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

                StringBuilder result = new StringBuilder();
                String line;
                while ((line = rd.readLine()) != null) {
                    result.append(line);
                }

                JSONObject json = new JSONObject(result.toString());
                retour.put("success", true);
                retour.put("lastId", json.getInt("lastId"));
                //Log.e("AA",String.valueOf(json.getInt("lastId")));
            } catch (MalformedURLException e) {
                retour.put("message", "MalformedURLException Error: " + e.getLocalizedMessage());
            } catch (UnsupportedEncodingException e) {
                retour.put("message", "UnsupportedEncodingException Error: " + e.getLocalizedMessage());
            } catch (IOException e) {
                retour.put("message", "IOException Error: " + e.getLocalizedMessage());
            } catch (Exception e) {
                retour.put("message", "Exception Error: " + e.getLocalizedMessage());
            }
            return retour;
        }


        @Override
        protected ContentValues doInBackground(String... args) {

            //loading = ProgressDialog.show(context, "Please Wait", null, true, true);
            return handleActionSend(args[0], args[1], args[2], args[3], args[4], args[5],args[6]);
        }

        @Override
        protected void onPreExecute() {
            loading = ProgressDialog.show(context, "Please Wait", null, true, true);
        }

        @Override
        protected void onPostExecute(ContentValues contentValues) {
            super.onPostExecute(contentValues);
            if (contentValues != null) {
                loading.dismiss();
                String message;
                if (contentValues.getAsBoolean("success")) {
                    message = "Inserted successfully: " + contentValues.getAsString("lastId");
                    lastID = contentValues.getAsString("lastId");
                    Toast.makeText(getApplicationContext(), "D" + lastID, Toast.LENGTH_LONG).show();
                } else {
                    message = "An errorr has occured!\n" + contentValues.getAsString("message");
                }
                Toast.makeText(context, message, Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(), "No internet connection. Please try again", Toast.LENGTH_LONG).show();
            }
        }

    }

    public void addInformation(final String name, final String weather, final String date2, final String status, final String timeIn, final String timeOut, final String hours) {
        AddInfo ru = new AddInfo(this);
        ru.execute(name, weather, date2, status, timeIn, timeOut,hours);
    }

addInformation.php

<?php 
require_once('dbConnect.php');
    if($_SERVER['REQUEST_METHOD']=='POST'){

        $response = array();

        //Getting values

        $name = $_POST['name'];
        $weather = $_POST['weather'];
        $date = $_POST['date'];
        $status = $_POST['status'];
        $timeIn = $_POST['timeIn'];
        $timeOut = $_POST['timeOut'];
        $hours = $_POST['totalHours'];

        print_r($hours);
        //Creating an sql query
        $sql = "INSERT INTO information(name, weather, date, status, time_in, time_out, total_hours) VALUES ('$name','$weather','$date', '$status', '$timeIn', '$timeOut', '$hours')";

        //Importing our db connection script
        require_once('dbConnect.php');

        //Executing query to database
        if(mysqli_query($con,$sql)){
            //echo 'Information Added Successfully';
            $insertId= mysqli_insert_id($con);
            $response["lastId"]=$insertId;
            echo json_encode($response);
        }else{
            echo 'Could Not Add Information';
        }

        //Closing the database 
        mysqli_close($con);
    }
?>

所有数据都可以插入MySQL,只是total_hours始终为0。我想知道错误是否出自此行?

 TotalHours=totalHours.getText().toString();

发生错误!异常错误:<brjava.lang.String类型的值无法转换为JSONObject。


问题答案:

在四处搜索后,我重新创建表并将列更改为hours …之后,它可以正常工作



 类似资料:
  • 我正在尝试用Firebase制作一个简单的Android应用程序。 目前,我只是试图从Firebase实时保存用户数据库。但由于某种原因它不起作用。另一方面,身份验证工作完美。 数据库本身没有显示任何内容。它总是显示“null” 我一直在关注这个YouTube教程,并一直在做一些类似的事情。 当我尝试创建一个用户并将其发送到数据库时,运行的程序没有给出任何答案。我有一个进度条,一旦setValue

  • 我正在使用LogStash1.5.2 尝试使用logstash-output-mongoDB在MongoDB中插入数据 它只有在解析的日志不包含数组时才会正常工作,当JSON包含数组时会生成异常。 无法将事件发送到MongoDB 未定义的MethodBSON_TYPE NOMethodError:未定义#NOMethodError的方法`error_code':0x39794292 有什么办法可以

  • 事情是这样的 我不知道发生了什么,如果有人能帮忙,我会非常感激的。THX!

  • 问题内容: 这似乎很简单,但我坚持使用简单的insert语句。请参见以下内容: 在临时表行中,实际列表是从其他位置动态拉出的(这是出于演示目的)。我收到以下错误消息: 错误代码:1054。“字段列表”中的未知列“ insert_table.resource_id” 现在,我可以在整个temp表上运行一次select,它返回正常值,只是在update语句中失败。我正在MySQL工作台上运行它。完全不

  • 我被鼓励开始android开发,所以我安装了android studio,并尝试启动Hello-world项目。我安装了android studio,它下载了所有必需的文件。我在android studio网站上遵循了guide,但每次尝试创建一个空活动-项目时,我都有很多错误。我试着改变SDK版本,但我对java和android开发完全是新手,不能理解我做错了什么。拜托,我花了一整天的时间来解决

  • 问题内容: 我曾经在python中向Elasticsearch插入数据,但无法插入数据。我的代码: 当我使用,但无法插入任何数据时,该如何处理呢?错误是: 问题答案: 使用method,您可以传递一个字典列表或一个生成器,生成一个字典。在这里解释。一个在python用于未在RAM中加载变量,但如果你要通过你的前一个清单- 在字典中的列表,它没有更多的意义,因为建立一个列表,你应该在内存中加载所有里