从MySQL数据库读取数据到android

问题描述:

我正在关注如何使用json格式从mysql数据库读取数据到android应用的YouTube教程。只要点击“get json”按钮,应用程序应该从数据库中显示表格的json格式。我仔细地关注并查看了代码和php文件,但是我的表格没有显示在我的textview中的json格式,而是我不知道的HTML代码。从MySQL数据库读取数据到android

这里是我的MainActivity.class

public class MainActivity extends AppCompatActivity { 

String json_string ; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

public void getJSON(View view) 

{ 

    new BackgroundTask().execute(); 

} 


class BackgroundTask extends AsyncTask<Void,Void,String> 
{ 
    String JSON_STRING; 
    String json_url; 

    @Override 
    protected void onPreExecute(){ 
     super.onPreExecute(); 

     json_url = "http://www.puc.gava.ph/get_data.php"; 
    } 

    @Override 
    protected String doInBackground(Void... voids) { 
     try { 
      URL url = new URL(json_url); 
      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; 


    } 


} 

}

我还没做过一个分析,因为我想这样做,一步一步来。 这里是我的get_data.php

<?php 

$host= "localhost"; 
$user = "root"; 
$password =""; 
$db = "accounts"; 

$sql = "select * from user_info"; 

$con = mysqli_connect($host,$user,$password,$db); 

$result = mysqli_query($con,$sql); 

$response = array(); 

while($row = mysqli_fetch_array($result)) 
{ 
    array_push($response,array("username" => $row[0],"password" => $row[1],"email" => $row[2])); 

} 

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

mysqli_close($con); 

?>

我的PHP文件是好的,因为我测试的链接到浏览器,它显示我的表的JSON格式。

这里有些什么,我收到我的TextView

<br/> 
    <b>Notice</b>:Undefined index: 
    HTTP_ACCEPT_LANGUAGE in <n>/var/www/ph/rd/functions.php<b>49</b></br/> 
<html> 
<head> 
<link type="text/css"href=...........and so on. 

谢谢您的时间。

+0

没有代码支持您在textview中收到的内容。向我们展示'functions.php'里面的内容。 –

+0

我不明白先生。你什么意思?我已经看到其他用户使用与我的代码相同的代码,但他的问题只在解析和json格式的查看是好的。 – newb

+0

但我的目录中没有任何“functions.php”。 btw我用WAMP。 – newb

您可以在Java代码中缺少的标题:

httpURLConnection.setRequestProperty("Accept-Language", "en-US"); 

的浏览器设置这个头你。

+0

它只在之前删除了较高的html代码,但输出仍然相同。但还是谢谢你,先生。 – newb