我创建了一个包含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活动?
最佳答案
如果我正确无误,则可以像对第二项服务一样将$lastInsertId
打印为json响应。当您点击第一个服务并返回json响应后,您可以在应用中使用shared preference
保存该值,这样它将持续存在。我在这里没有问题。