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

时间:2016-11-30 23:23:21

标签: 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中声明的新数组,我该怎么办?我只是按照互联网上的一些教程来编写这段代码,所以我不完全知道它是如何工作的。 (抱歉我的英语不好)

1 个答案:

答案 0 :(得分:0)

由于您发布了工作代码但未指定确切问题,因此有点难以准确了解您的需求。特别是,&#34;将结果插入新数组&#34;意思?从表面看,我看到了:

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

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