2016年5月16日 星期一

php讀取mysql資料(使用Json)

太久沒更新了文章了~~
今天寫的這篇文章主要是提供另一種讀取Mysql資料的方法。
3月份時有寫一篇php抓資料庫的作法,但在那之後我找到另一種比較簡單的方法,方法請各位看下方搂~~

1.首先先寫一個PHP
<?
$host='120.105.132.39'; //你資料庫的位置
$name='root'; //帳號
$pwd='ab19696a';//密碼
$db='database'; //資料庫名稱
$con=mysql_connect($host,$name,$pwd) or die("connection failed");
mysql_select_db($db,$con) or die("db selection failed");


$result=mysql_query("SELECT * FROM user",$con);//user=資料表
while($row=mysql_fetch_assoc($result)){
$tmp[]=$row;
}
echo json_encode(array("data"=>$tmp));//放到json裡面,名稱是data
mysql_close($con);

?>

2.再來從android studio抓php的資料

首先 在 activity裡 設一個字串用來存放php網路位置(如下圖)
String showUri = "http://120.105.132.39/app_link/loadingdata.php";
並加上這段
com.android.volley.RequestQueue requestQueue;
並在onCreate裡放上這段
requestQueue = Volley.newRequestQueue(getApplicationContext());

接下來就是重點了,你要如何抓到php的資料。

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.POST,showUri, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println(response.toString());
try {
JSONArray data = response.getJSONArray("data");
//這邊要和上面json的名稱一樣
//下邊是把全部資料都印出來
for (int i = 0; i < data.length(); i++) {
JSONObject jasondata = data.getJSONObject(i);
String account = jasondata.getString("name");
String pwd = jasondata.getString("works");
txt.append(account + " " + pwd + " " + " \n");
//txt是textview
}
txt.append("===\n");//把資料放到textview顯示出來
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.append(error.getMessage());
}
});
requestQueue.add(jsonObjectRequest);

大致上就是這個樣子,圖我就沒有拍了。
有任何意見或是問題歡迎提出來一起討論。
如果有哪個地方寫錯或是我理解錯誤,還請各位糾正我。
最近有些忙,沒時間新增其他文章,還請各位見諒!!

4/6新增
如上面做完還有紅線,請在build.gradle裡面的dependencies {}中
加上
compile 'com.mcxiaoke.volley:library:1.0.19'
如下圖

php讀取mysql資料(使用Json)

太久沒更新了文章了~~ 今天寫的這篇文章主要是提供另一種讀取Mysql資料的方法。 3月份時有寫一篇php抓資料庫的作法,但在那之後我找到另一種比較簡單的方法,方法請各位看下方搂~~ 1.首先先寫一個PHP <? $host='120.105.132.3...