java - JSON 响应表示更新的变量为空

标签 java php android mysql json

我正在编写一个 Android 应用程序,我可以使用以下 PHP fragment 将特定用户的 user_group 更新到我的 MySQL 数据库:

else if ($tag == "update") {
        error_reporting(0);
        $user_group = $_POST['user_group'];
        $email = $_POST['email'];
        //update user
        $user = $db->updateUser($user_group, $email);
        if ($user) {
            $response["error"] = FALSE;
            $response["uid"] = $user["unique_id"];
            $response["user"]["name"] = $user["name"];
            $response["user"]["email"] = $user["email"];
            $response["user"]["user_group"] = ["user"]["user_group"];
            $response["user"]["created_at"] = $user["created_at"];
            $response["user"]["updated_at"] = $user["updated_at"];
            echo json_encode($response);
        } else {
            // user failed to store
            $response["error"] = TRUE;
            $response["error_msg"] = "Error occured in Updating user group";
            echo json_encode($response);
        }
 public function updateUser($user_group, $email) {
        error_reporting(0);
        $result = mysql_query("UPDATE users SET user_group = '$user_group' WHERE email = '$email'");
        if ($result) {
            // get user details 
            //$uid = mysql_insert_id(); // last inserted id
            $result = mysql_query("SELECT * FROM users WHERE email = '$email'");
            // return user details
            return mysql_fetch_array($result);
        } else {
            return false;
        }
    }

但随后我收到 JSON 响应,它说 user_group 为空:

Update Response: {"tag":"update","error":false,"uid":"55c9a7be642501.18311962","user":{"name":"Hi","email":"hi","user_group":null,"created_at":"2015-08-11 00:43:58","updated_at":null}}

这是我获取响应的 java 代码:

submitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText groupName = (EditText) dialog.findViewById(R.id.group);
                final String name = groupName.getText().toString();
                System.out.println("Name of group is: " + name);
                updateUser(name);
                System.out.println("Trying to update user group");
                if (!name.isEmpty()) {

                    //add to sqlite database
                    updateUser(name);
                } else {
                    Toast.makeText(getApplicationContext(),
                            "Please enter your details!", Toast.LENGTH_LONG)
                            .show();
                }
                String tag_string_req = "req_update";

                //showDialog();

                StringRequest strReq = new StringRequest(Request.Method.POST,
                        AppConfig.URL_REGISTER, new Response.Listener<String>() {

                    @Override
                    public void onResponse(String response) {
                        Log.d(TAG, "Update Response: " + response.toString());
                        //hideDialog();

                        try {
                            JSONObject jObj = new JSONObject(response);
                            boolean error = jObj.getBoolean("error");
                            if (!error) {
                                System.out.println("User group successfully updated in mysql");
                                // User successfully stored in MySQL
                            } else {
                                System.out.println("The use group failed to update");
                                // Error occurred in registration. Get the error
                                // message
                                String errorMsg = jObj.getString("error_msg");
                                Toast.makeText(getApplicationContext(),
                                        errorMsg, Toast.LENGTH_LONG).show();
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e(TAG, "Update Error: " + error.getMessage());
                        Toast.makeText(getApplicationContext(),
                                error.getMessage(), Toast.LENGTH_LONG).show();
//                hideDialog();ooo
                    }
                }) {
                    String email = db.getUserDetails().get("email");

                    @Override
                    protected Map<String, String> getParams() {
                        System.out.println("trying to return params");
                        // Posting params to register url
                        Map<String, String> params = new HashMap<>();
                        params.put("tag", "update");
                        params.put("user_group", name);
                        params.put("email", email);
                        return params;
                    }
                };
                System.out.println("updating group to mysql database");
                // Adding request to request queue
                AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
//                System.out.println("here1");
//                System.out.println("user group: " + db.getUserDetails().get("user_group"));
                dialog.dismiss();
            }
        });
        //System.out.println("here2");
    }

最佳答案

$response["user"]["user_group"] = ["user"]["user_group"];

替换为:

$response["user"]["user_group"] = $user["user_group"];

关于java - JSON 响应表示更新的变量为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31936152/

相关文章:

php - Laravel 5.4 中非多形式/形式数据的单个文件上传

java - map 未显示

Java 多客户端服务器套接字。管道破裂检测

php - EasyPHP - 本地主机别名

android - ShowcaseView 的叠加层不透明

Android 应用程序 - 从 ChromeCast 应用程序打开 "Screen Cast"

android - 如何可靠地从 AttributeSet 中获取颜色?

java - 分布式(XA)事务的性能调整-如何?

java - 我可以通过 Spring JMS 使用 ObjectMessage 发送文件吗?

javascript - 从 CSS 中删除包含对外部文件的引用的行