» 首頁 » 討論區 » Android程式設計 »android php sql 的連結資料問題

android php sql 的連結資料問題

發表人: ooaaa
積分: 158
發表時間: 2011-07-18 02:23:55
小弟正在開發一個android 程式...
我是利用android->php->mysql來讀取資料

問題:
我如何用android 的listview 來讀取mysql 資料,php 應該要怎樣打,android 讀取php數據的listview要怎樣打??還有listview的後續動作...這些要怎樣做...請大大們可給簡單的範例嗎...
可以email 給我
onlykillyou@hotmail.com


弟不勝感激...
發表人: Seachaos
積分: 2432
發表時間: 2011-07-20 21:47:52
[quote]ooaaa 提到:
小弟正在開發一個android 程式...
我是利用android->php->mysql來讀取資料

問題:...[/quote]
關於這部分你可以用JSON的方式讓PHP傳資料給Android

PHP有json_encode的function可以讓你把fetch的資料變成JSON

然後參考這篇

用Android端的JSONObject或是JSONArray去取得PHP給的JSON資料

先從取得Server資料試看看,如果有問題的話觀迎一起研究 :)
發表人: 訪客
發表時間: 2011-08-20 19:40:06
請問一下 我發現php端用json_encode來包資料的時候,若資料裡面有中文,android這邊收的資料會是空的,這個問題要怎麼處理?
發表人: Seachaos
積分: 2432
發表時間: 2011-08-22 00:08:44
你的PHP是用UTF-8的編碼嗎?
應該是不會有中文收不到的問題
發表人: 訪客
發表時間: 2011-08-29 20:42:16
我的php編碼是utf-8,中文傳到android這邊來是空白的
我有分別傳英文跟中文測試過了所以確定不是連線問題
然後我查網路上有說要用urldecode這個函數來處理中文,可是我用了以後android這邊會拋出JSONException
發表人: Seachaos
積分: 2432
發表時間: 2011-08-29 21:32:01
[quote]訪客 提到:
我的php編碼是utf-8,中文傳到android這邊來是空白的
我有分別傳英文跟中文測試過了所以確定不是連線問題...[/quote]
在你解析成JSON Obejct前資料可以先dump出來看看
看是不是Server有問題或是傳送過程有問題

另外使用json_encode的話應該是不用對中文做特別處理了
我個人使用的經驗是PHP已會自動做編碼的動作
發表人: 訪客
發表時間: 2011-08-30 14:49:43
我後來發現我使用的編輯器會改變檔案的編碼,所以我現在一律改用記事本
現在的情況是我可以從php這邊傳中文給android,但是用json_encode的話會變成
{"test":"\u6e2c\u8a66"}
如果用JSONObject的話會造成錯誤
發表人: Seachaos
積分: 2432
發表時間: 2011-08-31 01:31:22
您好:
您的字串沒有錯誤,是可以解析的

我寫了一段測試的Code
[sea:javaCode]
String str = "{\"test\":\"\\u6e2c\\u8a66\"}";
Log.i("msg",str);
try {
JSONObject JSON = new JSONObject(str);
Log.i("msg",JSON.getString("test"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
[/sea]
所得的值是"測試"沒錯
所以有可能是你JSON的解析方式出了問題?
發表人: 訪客
發表時間: 2011-08-31 14:20:57
已解決,我查了log之後發現收到的字串頭有亂碼而textview不會顯示出來
google的結果亂碼是BOM字元,會造成JSONObject無法解析,只要把這部分去掉就可以了
發表人: Seachaos
積分: 2432
發表時間: 2011-08-31 17:05:09
對,這是Windows記事本存UTF-8會有的問題
BOM除了會在JSON有問題,在AJAX等方面也會造成問題

如果你是用Windows系統的話建議用Notepad++來當記事本
可以減少這問題的發生