php - 如何将从 MySQL 检索到的数据插入到 Android 应用程序中的数组中?

标签 php android mysql

我正在尝试从我的数据库中检索数据,我写了这段代码

<?php
require "conn.php";

$mysql_qry = "select * from domande"; 
$res = mysqli_query($conn,$mysql_qry);
$result = array();

while($row = mysqli_fetch_array($res)){
array_push($result,
array('id_domanda'=>$row[0],
'domanda'=>$row[1],
'username'=>$row[2]
));
}

echo json_encode(array("result"=>$result));

mysqli_close($conn);

?>

它应该返回一个数组。我已经能够以这种方式在警告对话框中显示数组:

class BackgroundWorkerDomande extends AsyncTask<String,Void,String> {

        Context context;
        AlertDialog alertDialog;
        BackgroundWorkerDomande (Context ctx){
            context = ctx;
        }
        @Override
        protected String doInBackground(String... params) {
            String type = params[0];


            if (type=="getquestion"){
                try {


                    URL url = new URL(params[3]);
                    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                    httpURLConnection.setRequestMethod("POST");
                    httpURLConnection.setDoOutput(true);
                    httpURLConnection.setDoInput(true);


                    InputStream inputStream = httpURLConnection.getInputStream();
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
                    String result = "";
                    String line = "";
                    while ((line = bufferedReader.readLine()) != null) {
                        result += line;
                    }
                    bufferedReader.close();
                    inputStream.close();
                    httpURLConnection.disconnect();
                    return result;
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }



            return null;
        }

        @Override
        protected void onPreExecute() {


            alertDialog = new AlertDialog.Builder(context).create();
            alertDialog.setTitle("Status");
        }

        @Override
        protected void onPostExecute(String result) {
            alertDialog.setMessage(result);
            alertDialog.show();



        }

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }
    }

但是如果我想将结果插入到在我的 MainActivity 中声明的新数组中,我应该怎么做?我只是按照互联网上的一些教程编写了这段代码,所以我并不完全了解它是如何工作的。 (抱歉我的英语不好)

最佳答案

因为您发布了您的工作代码但没有指定确切的问题,所以很难确切地知道您想要什么。特别是,“将结果插入新数组”是什么意思?从表面上看,我看到了这一点:

ArrayList<String> results;
results.add (result);

但是,我会提出一个建议:在您的 php 代码中,您可以将其分成多个字段并将其作为数组发布,而不是将整个结果作为一个字符串发布吗?然后,在接收端,如果您想使用各个字段值,则不必从 result 中解析它们。

关于php - 如何将从 MySQL 检索到的数据插入到 Android 应用程序中的数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900072/

相关文章:

php - 值可变的 ACF 查询

php - 将数组作为参数传递给 SQL 过程

php - 引用 - 这个错误在 PHP 中意味着什么?

android - 如何在不要求用户第一次在浏览器或应用程序之间进行选择的情况下从链接打开 Android 应用程序

mysql - 比较mysql查询中的字段

MySQL order by (string to int)

php - Laravel Blade : Getting access to a variable in a nested partial from a parent view

php - 否则条件永远不会达到

android - 绑定(bind)到服务(如果存在)

Java 字节码到 .dex 或 .apk 不起作用...该怎么办?