首页 > 解决方案 > 如何在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);

计数为 json 格式

标签: phpandroid

解决方案


推荐阅读