我需要通过创建 JSON 对象将数据从 MYSQL 数据库传递到 android 应用程序。我只能从 MYSQL 数据库传递第一个值。如何将所有值一起传递给 android 应用程序。(我的数据库包含超过 10 个位置的纬度和经度值。)
以下是我仅将第一行值从数据库传递到 android 应用程序的代码。
try {
HttpClient client = new DefaultHttpClient();
URI website = new URI("http://192.168.1.15/latlonret1.php");
HttpGet request = new HttpGet();
request.setURI(website);
HttpResponse response = client.execute(request);
in = new BufferedReader(new InputStreamReader(response
.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String l = "";
String nl = System.getProperty("line.separator");
while ((l = in.readLine()) != null) {
sb.append(l + nl);
}
in.close();
data = sb.toString();
// return data;
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
try {
String returnString;
String returnString1;
JSONArray jArray = new JSONArray(data);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
JSONObject json_data1 = jArray.getJSONObject(i);
returnString=json_data.getString("lat") + "\n";
returnString1=json_data1.getString("lon") + "\n";
System.out.println(returnString);
System.out.println(returnString1);
Intent viewIntent =new Intent(Androidmap.this,Mapview.class);
Bundle bundle = new Bundle();
bundle.putString("stuff", returnString);
viewIntent.putExtras(bundle);
Bundle bundle1 = new Bundle();
bundle1.putString("stuff1", returnString1);
viewIntent.putExtras(bundle1);
startActivity(viewIntent);
}
这是我的服务器端编码:
<?php
ob_start();
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="manu"; // Table name
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql = "select lat , lon from manu ";
$result=mysql_query($sql);
if(! $result )
{
die('Could not get data: ' . mysql_error());
}
while($row=mysql_fetch_array($result , MYSQL_ASSOC))
{
$output[]=$row;
}
echo json_encode($output);
mysql_close();
?>