从Mysql计数到modelClass android studio

Posted

技术标签:

【中文标题】从Mysql计数到modelClass android studio【英文标题】:getting count from Mysql to modelClass android studio 【发布时间】:2020-09-03 14:15:33 【问题描述】:

尝试将 mysql 表的 COUNT 行添加到 ModelCLass 中,我搜索了几乎所有要使用的方法,这是唯一有意义但无法理解问题或我出错的地方,如果有人能提供帮助,那就太好了。 ..提前谢谢

错误

 D/Volley: onError: com.androidnetworking.error.ANError: org.json.JSONException: Value "count":4 of type org.json.JSONObject cannot be converted to JSONArray

php

$query = "SELECT ML.* FROM search ML INNER JOIN activity M ON M.activity_id = ML.activity_id  ORDER BY date_from ASC";
$sql = mysqli_query($conn, $query);
$num_rows = mysqli_num_rows($sql);
$output = array("count" => $num_rows);
$result = array(); 
while($row = mysqli_fetch_array($sql))
array_push($result, array(

  'activity_img'=>$row[8],
  'company_name'=>$row[9],
  'user_id'=>$row[10]));

 echo json_encode($output);
 echo json_encode($result); 

java

 private void getData() 
    AndroidNetworking.get("http://10.0.2.2/Final/search.php")
            .setPriority(Priority.LOW)
            .build()
            .getAsJSONArray(new JSONArrayRequestListener() 
                @Override
                public void onResponse(JSONArray response) 
                    Log.d(TAG, "onResponse: " + response);
                    

                        try 
                            for (int i = 0; i < response.length(); i++) 
                                JSONObject data = response.getJSONObject(i);

                                promotModelClassList.add(new PromotModelClass(

                                        data.getString("activity_img"),
                                        data.getString("company_name"),
                                     data.getJSONArray("output").getJSONObject(0).getString("count")

                                ));

                            

                            PromotAdapter adapter = new PromotAdapter(promotModelClassList, getContext());
                            promotRecycler.setAdapter(adapter);


                         catch (JSONException e) 
                            e.printStackTrace();
                        
                    
                 @Override
                public void onError(ANError error) 
                    Log.d(TAG, "onError: " + error);
                
            );

【问题讨论】:

看看这个:***.com/q/12722468/9152105 @mohosyny 我检查了帖子和答案,但我无法解决我的问题。我完美地从结果数组中得到所有结果,但是当我尝试添加另一个包含计数行的数组时解决问题.. 【参考方案1】:

在即兴创作了很多之后,我知道我哪里错了

所以对于 php

$output = array("count" => $num_rows);
$result = array(); 
while($row = mysqli_fetch_array($sql))
array_push($result, array(

'activity_img'=>$row[8],
'company_name'=>$row[9],
'user_id'=>$row[10]));

delete echo删除$输出

  while($row = mysqli_fetch_array($sql))
  array_push($result, array(

  'count'=>$num_rows,
  'activity_img'=>$row[8],
  'company_name'=>$row[9],
  'user_id'=>$row[10]));
  

从那以后我可以将计数作为字符串,所以我改变了

  data.getJSONArray("output").getJSONObject(0).getString("count")

  data.getString("count")

【讨论】:

以上是关于从Mysql计数到modelClass android studio的主要内容,如果未能解决你的问题,请参考以下文章

MySql 的行数并插入到计数的表中

在共享首选项android中保存模型类的ArrayList<ModelClass>

重置 SQLite3/MySQL 中的行数计数

为啥 MySQL 从 1 计数而不是 0?

mysql导出身份证到excel为科学计数法,怎么办

Android如何连接MySQL数据库