我有一个连接到数据库并获取数据的php文件,现在我希望将这些数据发送到我的java代码并存储为数组,用于连接到php并使用 AsyncHttpClient <返回结果/强> 现在在 AsyncHttpClient 中,它们是一个以 onSucess 为特征的函数,它以字符串值作为参数,所以来自php的任何东西都存储为字符串。我希望它是数组.. 请给我一个方法,要么得到一个数组而不是字符串 以下是我的代码。
public void func3(View view)throws Exception
{
AsyncHttpClient client = new AsyncHttpClient();
RequestParams rp = new RequestParams();
rp.put("pLat", "select * from iwmp_state");
client.post("http://10.0.2.2/conc2.php", rp, newAsyncHttpResponseHandler() {
public final void onSuccess(Array response) {
// handle your response here
//tx.setText(response.toString());
}
@Override
public void onFailure(Throwable e, String response) {
// something went wrong
tx.setText(response.toString());
}
});
}
并且我有一个php文件,它回显了一个数组 $ row
<?php
// attempt a connection
$dbh = pg_connect("host=10.22.35.11 dbname=iwmp_dev2 user=postgres ");
if (!$dbh) {
die("Error in connection: " . pg_last_error());
}
// execute query
$sql = $_POST['pLat'];
$result = pg_query($dbh, $sql);
if (!$result) {
die("Error in SQL query: " . pg_last_error());
}
$array = array();
// iterate over result set
// print each row
while ($row = pg_fetch_array($result)) {
$i++;
echo $row[0];
}
// free memory
pg_free_result($result);
// close connection
pg_close($dbh);
?>
什么是php echos是数组,onSuccess作为参数是什么字符串。怎么做!
答案 0 :(得分:5)
在这里,我只是展示简单的演示。您必须根据您的要求进行更新。
创建简单PHP Array
,详细信息click here
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
echo json_encode($cars);
exit;
?>
现在如何在android中读取PHP数组?
String String_Response = ""; // this is your web response
创建ArrayList
。
ArrayList<String> User_List = new ArrayList<String>();
try
{
JSONArray jArray = new JSONArray(String_Response);
for (int i = 0; i < jArray.length(); i++)
{
JSONObject json_data = jArray.getJSONObject(i);
User_List.add(json_data.getString("your_json_obj"));
}
}
catch (Exception e)
{
Log.e(TAG, "" + e);
}
另请查看以下链接,您将了解如何从android发送和接收数据到php。
答案 1 :(得分:1)
我很难理解你想要达到的目标,但也许我可以帮助一点: 将你的php数组内联到一个字符串(http://php.net/manual/en/function.implode.php)中,然后至少你可以看到你要返回的内容并可能重新处理它的客户端?
答案 2 :(得分:1)
得到它,我们可以做的是在我们的php中使用 IMPLODE func,并在每个数组值后添加(,) 然后让它作为字符串传递。 在java代码中使用它之后。 拆分(&#34;,&#34;) String的函数并将它们存储在一个数组中。
对我来说很好。不需要json:P