从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.
谢谢您的时间。
答
您可以在Java代码中缺少的标题:
httpURLConnection.setRequestProperty("Accept-Language", "en-US");
的浏览器设置这个头你。
+0
它只在之前删除了较高的html代码,但输出仍然相同。但还是谢谢你,先生。 – newb
没有代码支持您在textview中收到的内容。向我们展示'functions.php'里面的内容。 –
我不明白先生。你什么意思?我已经看到其他用户使用与我的代码相同的代码,但他的问题只在解析和json格式的查看是好的。 – newb
但我的目录中没有任何“functions.php”。 btw我用WAMP。 – newb