2016-11-24 89 views
0

我正在關注如何使用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

回答

0

您可以在Java代碼中缺少的標題:

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

的瀏覽器設置這個頭你。

+0

它只在之前刪除了較高的html代碼,但輸出仍然相同。但還是謝謝你,先生。 – newb