从android studio中的数据库表中显示一个用户的信息

时间:2018-07-18 19:16:15

标签: android mysql database

我目前正在构建一个android应用程序,并且我在线上已经看到了很多有关如何在android中以列表视图形式返回数据库数据行的建议,但我只是想返回一个字段。

基本上,用户使用其用户名和密码登录。每个用户名都是唯一的。

在下一个屏幕上,我需要一个textView来显示其真实姓名,该姓名是根据用户名从db表中获取的,但是我正在努力寻找方法。

有什么建议吗?

谢谢!

编辑:

php文件如下:

<?php
$user="";
$server="";
$db="";
$password=""; [I have removed these to share this]

$conn=mysqli_connect($server, $user, $password, $db);

$query="SELECT * FROM rest_users WHERE username = 'XXX'";
$result= mysqli_query($conn, $query) or die('error: '+mysql.error());

$response = array();

while($row = mysqli_fetch_array($result)){
    array_push($response, array("name"=>$row[1], "table"=>$row[5]));
}

echo json_encode(array("server_response"=>$response));

mysqli_close($conn);

“ XXX”显然是我希望用户名来自登录屏幕中输入的详细信息的地方。

下面是我要显示名称的活动中的相关代码:

 public void getJSON(View view){
        new BackgroundTask().execute();
    }

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

        String jsonurl;
        String JSON_STRING;

        @Override
        protected void onPreExecute() {
            jsonurl = "http://mgourley03.web.eeecs.qub.ac.uk/RestaurantApp/json/jsongetdata.php";
        }

        @Override
        protected String doInBackground(Void... voids) {
            try {
                URL url = new URL(jsonurl);
                HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                StringBuilder stringBuilder = new StringBuilder();
                while((JSON_STRING = bufferedReader.readLine()) !=null){
                    stringBuilder.append(JSON_STRING+"\n");
                }

                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return stringBuilder.toString().trim();


            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            return null;
        }

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

        @Override
        protected void onPostExecute(String result) {
            TextView textView = (TextView)findViewById(R.id.textView);
            textView.setText(result);
            json_string = result;
        }


    }

    public void parseJSON(View view){
        if(json_string==null){
            Toast.makeText(getApplicationContext(),"First get JSON", Toast.LENGTH_LONG).show();
        } else {
            Intent intent = new Intent(this, CustomerHomeScreen.class);
            intent.putExtra("json_data", json_string);
            startActivity(intent);
        }
    }

我本来是在关注在线教程,但是它将返回列表视图中的所有值,这不是我想要的。我希望有另一种方法可以使用用户名从表中返回用户名(我在登录活动中使用intent.putExtra对此进行了传递)

0 个答案:

没有答案