php - 如何在recyclerview中显示为特定事件或项目注册的用户计数并在android的textview上显示?
问题描述
我正在创建一个包含所有事件的事件应用程序。这些事件存储在 MySQL 数据库中并显示在 recyclerview 中。现在用户可以点击事件并注册它。我想在 recyclerview 中的每个事件下方的 textview 上显示为该特定事件注册了多少用户的计数。
我用 PHP 编写了代码来获取每个事件的计数。但我无法使用 volley POST 方法在 textview 上显示。尽管它已被许多用户注册,但它显示所有事件的计数为 0。我尝试在 POSTMAN 中查看 PHP 代码是否错误,但它正在工作并在 postman 中显示完美的结果,但无法在 textview 上显示。
php DbOperation 中的代码:
public function TotalRecords($eventid){
$stmt = $this->con->prepare("SELECT COUNT(id) FROM econfirm WHERE eventid = ?");
$stmt->bind_param("s",$eventid);
if($stmt->execute())
{
return $stmt->get_result()->fetch_assoc();
}
else
{
return 2;
}
}
计数.php
<?php
require_once '../includes/DbOperations.php';
$response = array();
if($_SERVER['REQUEST_METHOD']=='POST'){
if(
isset($_POST['eventid']))
{
//operate the data further
$db = new DbOperations();
$user = $db->TotalRecords($_POST['eventid']);
$response['error'] = false;
$response['countid'] = $user['COUNT(id)'];
if($user == 1){
$response['error'] = false;
$response['message'] = "Success";
}elseif($user == 2){
$response['error'] = true;
$response['message'] = "error";
}elseif($user == 0){
$response['error'] = true;
$response['message'] = "Nodata";
}
}else{
$response['error'] = true;
$response['message'] = "Required fields are missing";
}
}else{
$response['error'] = true;
$response['message'] = "Invalid Request";
}
echo json_encode($response);
在 textview 上显示计数
total = (TextView) view.findViewById(R.id.count);
StringRequest stringRequest = new StringRequest(Request.Method.POST, URLs.URL_COUNT,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//progressDialog.dismiss();
try {
JSONObject jsonObject = new JSONObject(response);
total.setText(jsonObject.getString("countid"));
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("eventid", mData.get(viewHolder.getAdapterPosition()).getId());
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(mContext);
requestQueue.add(stringRequest);
解决方案
推荐阅读
- ios - 是否可以在对象数组中使用 UIImage?
- c# - SshKeyGenerator 生成的公钥/私钥不起作用
- asp.net-core - 在 Windows 中使用 CLI 在 .Net 5.0 中创建 WebAPI 时出错
- html - 如何根据视口纵横比实现 CSS 响应性?
- google-chrome - WebUSB API 无法找到兼容设备
- mysql - 如何使用socket.io mysql nodejs express删除帖子
- node.js - Insomnia 使用 Mongoose 从 NodeJS Api 检索许多结果(重复)
- javascript - 更改 object.style.alignSelf 的值
- android - 如何在android中删除工具栏图标上的RecyclerView中的所有项目
- pine-script - 仅当时间范围 display.none 时才使用 display.all