试图从PHP获取数组并将其存储在java,android中

时间:2013-04-26 10:43:40

标签: php android arrays string

我有一个连接到数据库并获取数据的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作为参数是什么字符串。怎么做!

3 个答案:

答案 0 :(得分:5)

在这里,我只是展示简单的演示。您必须根据您的要求进行更新。

PHP Side

创建简单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 Side

现在如何在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。

Android + PHP Communication Example

答案 1 :(得分:1)

我很难理解你想要达到的目标,但也许我可以帮助一点: 将你的php数组内联到一个字符串(http://php.net/manual/en/function.implode.php)中,然后至少你可以看到你要返回的内容并可能重新处理它的客户端?

答案 2 :(得分:1)

得到它,我们可以做的是在我们的php中使用 IMPLODE func,并在每个数组值后添加(,) 然后让它作为字符串传递。 在java代码中使用它之后。 拆分(&#34;,&#34;) String的函数并将它们存储在一个数组中。

对我来说很好。不需要json:P