如何从 Android 中的 phpmyadmin 数据库中获取所有行?
Posted
技术标签:
【中文标题】如何从 Android 中的 phpmyadmin 数据库中获取所有行?【英文标题】:How to get all rows from phpmyadmin database in Android? 【发布时间】:2017-09-26 21:21:57 【问题描述】:如何从 phpmyadmin 数据库中获取所有行并在 android 中显示它们?
当我得到一排时,一切都很好。当我尝试读取所有行时,我只得到最后一行。
我的 php:
<?php
$con = mysqli_connect("localhost", "id831385_rootroot", "rootroot", "id831385_bukrisk");
$accept= $_POST["accept"];
$statement = mysqli_prepare($con, "SELECT * FROM payments WHERE accept= ?");
mysqli_stmt_bind_param($statement, "i", $accept);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $id_pay, $id_user, $value, $accept);
$response = array();
$response["success"] = false;
while(mysqli_stmt_fetch($statement))
$response["success"] = true;
$response["id_pay"] = $id_pay;
$response["id_user"] = $id_user;
$response["value"] = $value;
$response["accept"] = $accept;
echo json_encode($response);
?>
我的 java 请求:
public class GetPaymentsRequest extends StringRequest
private static final String LOGIN_REQUEST_URL = "https://pacinho.000webhostapp.com/PaymentsList.php";
private Map<String, String> params;
public GetPaymentsRequest(String accept, Response.Listener<String> listener)
super(Request.Method.POST, LOGIN_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("accept", accept);
@Override
public Map<String, String> getParams()
return params;
我在活动中的 java 代码:
Response.Listener<String> responseListener = new Response.Listener<String>()
@Override
public void onResponse(String response)
try
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if (success)
int id_pay = jsonResponse.getInt("id_pay");
int id_user = jsonResponse.getInt("id_user");
int value = jsonResponse.getInt("value");
//Toast.makeText(myView.getContext(),""+id_pay, Toast.LENGTH_SHORT).show();
String id_payS = String.valueOf(id_pay);
String id_userS = String.valueOf(id_user);
String valueS = String.valueOf(value);
showPay.setText(showPay.getText() + " " + id_payS);
//UserPayments UP = new UserPayments(id_payS,id_userS,valueS);
//paymentsList.add(UP);
//paymentsCustomAdapter.notifyDataSetChanged();
else
catch (JSONException e)
e.printStackTrace();
;
GetPaymentsRequest paymentsRequest = new GetPaymentsRequest("0", responseListener);
RequestQueue queue = Volley.newRequestQueue(myView.getContext());
queue.add(paymentsRequest);
【问题讨论】:
PhpMyAdmin 不是数据库。它是一种管理工具。您使用的真实数据库(可能)是 MySQL。 【参考方案1】:对于您获取 PHP 代码的每一行,只是覆盖了$response
的值。相反,您应该创建一个数组并将所有行放入其中
while(mysqli_stmt_fetch($statement))
$payment = array();
$payment["success"] = true;
$payment["id_pay"] = $id_pay;
$payment["id_user"] = $id_user;
$payment["value"] = $value;
$payment["accept"] = $accept;
$response[] = $payment;
你还需要修改android端的代码来处理数组。
【讨论】:
对不起.. 我不知道那是做什么的。如何在 Android 中执行此操作。谢谢! @AllPacinho 这个answer 可能会帮助你以上是关于如何从 Android 中的 phpmyadmin 数据库中获取所有行?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 phpmyadmin 和 json 从 android 上传和下载图像到服务器?
如何从 mysql 工作台中的 phpmyadmin 检索数据
我如何知道我的 phpmyadmin(xampp) for android app 的大学 IP 地址