【问题标题】:How to pass a variable from a php file to an Android activity?如何将变量从 php 文件传递​​到 Android 活动?
【发布时间】:2016-02-25 17:52:42
【问题描述】:

我创建了一个包含 2 个活动的应用。在第一个活动中,我使用 Web 服务器上的 php 文件将一些记录插入到 mysql 数据库中,如下所示:

<?php
    if($_SERVER["REQUEST_METHOD"]=="POST") {
        require 'connection.php';
        createUsername();
    }

    function createUsername() {

        global $connect;

        $username = $_POST["username"]; 

        $query = " INSERT INTO statistics(username) VALUES ('$username');";
        $result = $connect->query($query);

        $lastInsertId = $connect->insert_id; // I need this variable    
    }
?>

在第二个活动中,我只是使用另一个看起来像这样的 php 文件来显示记录:

<?php
    if($_SERVER["REQUEST_METHOD"]=="POST") {
        include 'connection.php';
        showUserName();
    }

    function showUserName() {
        global $connect;

        $query = "SELECT * FROM statistics ORDER BY score DESC, time ASC";

        $result = $connect->query($query);
        $numberOfRows = $result->num_rows;

        $temp_array = array();

        if($numberOfRows > 0) {
            while ($row = $result->fetch_assoc()) {
                $temp_array[] = $row;
            }
        }

        header('Content-Type: application/json');
        echo json_encode(array("statistics"=>$temp_array));
    }
?>

在第一个活动中插入记录时,有一个名为$lastInsertId 的变量。我需要在我的应用活动中使用这个变量,如下所示:

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showUrl, new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {
        try {
            JSONArray users = response.getJSONArray("statistics");
            for (int i = 0; i < users.length(); i++) {
                JSONObject student = users.getJSONObject(i);

                String userName = student.getString("username");

                statistics.append(userName + " \n");
            }

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

我需要做什么,将该变量从 php 文件传递​​到我的 Android 活动?

【问题讨论】:

    标签: java php android json mysqli


    【解决方案1】:

    如果我理解正确,您可以像为第二个服务所做的那样将 $lastInsertId 打印为 json 响应。当您点击第一个服务并在它返回 json 响应后,您可以在 app 中使用 shared preference 保存该值。这样它将持续存在。我在这里没有发现问题。

    【讨论】:

    • 我没有完全理解你。你能告诉我怎么做吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2020-07-04
    • 1970-01-01
    • 2015-12-04
    • 2021-08-17
    • 1970-01-01
    • 2010-11-02
    相关资源
    最近更新 更多