类仍通过PHP中的旧数组传递

时间:2019-03-28 01:59:51

标签: java php android

我有一个将2值传递给mySQL的android程序,即Time in和Time out。我不知道会发生什么,但是我有一种情况,即所传递的数据不完整。例如,我将创建一条记录,唯一需要输入的时间是在键入时间后单击“保存”,因此记录是有数据的时间,超时为空。保存后,我的自动传递器会将数据发送到mySQL。我要做的下一件事是编辑该记录以添加“超时”,以便它们两个都有数据。在检查我的数据库我的两列都有数据后,自动传递器将运行。现在这是错误开始的地方,我有一个按钮调用刷新,它将从mySQL检索我的数据,创建一个JSON,然后在返回的数据没有超时并且检查数据后在android中发送它在MySQL中没有超时,即使我添加它。我不知道发生了什么事

我在Java中所做的是创建一个JSONArray,将其转换为字符串,然后将其传递到我的php文件中,然后我的php文件对其进行解码,然后将其循环保存到数据库中。

这是我创建json的方式

JSONArray vis_array = new JSONArray();

Cursor unsync_vis = Sync.Unsync_Visit_All();
while (unsync_vis.moveToNext()) {
    JSONObject vis_data = new JSONObject();
    try {
        vis_data.put("t1", formatInsert_n(unsync_vis.getString(unsync_vis.getColumnIndex("t1"))));
        vis_data.put("t2", formatInsert_n(unsync_vis.getString(unsync_vis.getColumnIndex("t2"))));
        vis_array.put(vis_data);
    } catch (JSONException e) {
        e.printStackTrace();
        Log.e("Auto Sync Error", e.getMessage());
    }                   
}



public String formatInsert_n(String data) {
    if (TextUtils.isEmpty(data) || data.length() == 0) {
        data = "null";
    } else {
        data = data.replace("'", "''");
        data = data.replace("null", "");
        if (data.toString().matches("")) {
            data = "null";
        } else {
            data = "'" + data + "'";
        }
    }
    return data;
}

创建该json后,我将其转换为使用stringRequest传递给它的字符串,然后在我的php中将其解码以用于循环将其保存在mySQL中

这是php代码

<?php
    header('Content-Type: application/json');
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);


    $insert_visit_new      = isset($_POST['insert_visit_new']) ? $_POST['insert_visit_new'] : "";


    if ($insert_visit_new != "") {
        $vis_array = json_decode($insert_visit_new, true);
        $vis_count = count($vis_array);

        for ($i = 0; $i < $vis_count; $i++) {
            $vis = $vis_array[$i];

            $t1            = $vis['t1'];
            $t2            = $vis['t2'];

            $ins_sql = "INSERT INTO table t1,t2 VALUES ('$t1','$t2') ON DUPLICATE KEY UPDATE t1 = $t1,t2 = $t2"
            $stmt = $DB->prepare($ins_sql);
            $stmt->execute();
        }
    }

    echo "done";
?>

通过上面的代码位于AsyncTask内部,而类为BroadcastReceiver

原因是我没有注销我的BroadcastReceiver吗?

还是我的此类中的jsonArray名称以及我的刷新按钮中的名称相同?

我的问题是怎么了?看起来它仍然传递旧数据。 TYSM提供任何帮助

0 个答案:

没有答案