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'
如下圖

2016年5月13日 星期五

android studio 使用servlet 網頁無法顯示中文 解決方法

最近在用android studio 開發 app engine 沒想到在處理顯示中文這部分花了很久的時間,以下是解決辦法。
1.先打開google cloud module的build.gradle。
2.在裡面加上(這段很重要,沒加這段後面無法顯示!!)
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"}
3.在doGet裡面加上(resp=response)
  *這段要放在輸出上面
resp.setContentType("text/html;charset=UTF-8");

doPost也是一樣加上
resp.setContentType("text/html;charset=UTF-8");
一樣放在輸出上面。

如果有說錯的地方或者有任何問題歡迎指教。

php讀取mysql資料(使用Json)

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