我連接我的android到MySQL數據庫,它工作正常。我用一個php文件來連接數據庫並進行查詢。 現在我想顯示來自同一個數據庫的不同表格的數據。我想我必須調用函數讀取,但我不知道如何刮削數據。 也許用Web服務做起來更容易或更好? 這是我從另一個職位如何從Android的不同表中讀取MYSQL數據庫?
package com.example.onlinetestactivity;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
TextView resultView;
HttpClient client;
JSONObject json;
String Dat;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultView = (TextView) findViewById(R.id.tvjson);
client = new DefaultHttpClient();
try {
json = RedData();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Dat = json.toString();
new Read().onPostExecute(Dat);
}
public JSONObject RedData() throws ClientProtocolException, IOException, JSONException {
HttpPost httppost = new HttpPost("http://file.php");
HttpResponse r = client.execute(httppost);
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
JSONArray jArray = new JSONArray(data);
JSONObject last = jArray.getJSONObject(0);
return last;
}
public class Read extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
try {
json = RedData();
//Toast.makeText(OnlineTestActivity.this, json.getString(arg0[0]), Toast.LENGTH_LONG);
return json.getString(arg0[0]);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String data) {
// TODO Auto-generated method stub
resultView.setText(data);
}
}
}
使用的代碼,這是PHP文件
<?php
header('Content-type: application/json');
$server = "XXXXXXXX";
$username = "XXXXXXX";
$password = "XXXXXXXX";
$database = "XXXXXXX";
$con = mysql_connect($server, $username, $password) or die ("No se puede conectar: " . mysql_error());
$db_selected = mysql_select_db($database, $con);
if (!$db_selected)
{
die ("Error al seleccionar la Base de datos: " . mysql_error());
}
$sql = "select XXXXXXXXXXX)";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
while($row = mysql_fetch_assoc($result)) {
$records[] = $row;
}
mysql_close($con);
print(json_encode($records));
?>
謝謝大家
非常感謝你這個例子很多Rishi。 – Ivan 2012-08-24 15:09:30