gpt4 book ai didi

java - php从android获取数组

转载 作者:行者123 更新时间:2023-11-30 02:24:46 24 4
gpt4 key购买 nike

我在 php 上的代码:

<?php
$username ='root';
$password ='abc';
$hostname ='localhost';
$database ='test_xmpp';
$localhost = mysql_connect($hostname,$username,$password) or
trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database,$localhost);
$groupmates = array();
$abc=mysql_query('SELECT count(1) FROM groupchat');
$groupcount= mysql_result($abc,0);
$groupcount = $groupcount + 1;
echo $groupcount;
$admin = $_POST["admin"];
$groupname = $_POST["groupname"];
$groupmates = $_POST["groupmates"];
$sql="INSERT INTO groupchat (idgroupchat,groupname) VALUES ('$groupcount','$groupname')";
mysql_query($sql);

$b = '2';

$a = $groupmates[0];
$sql1="INSERT INTO groupuser (idgroup, username, admin) VALUES ('$groupcount','$a','$b')";
mysql_query($sql1);
?>

我在安卓上的代码:

 public static class TestAsyncTask extends AsyncTask<String, Integer, String> {
protected String doInBackground(String... urls) {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("admin", admin));
nameValuePairs.add(new BasicNameValuePair("groupname", groupname));
for (int i=0;i<8;i++)
{
nameValuePairs.add(new BasicNameValuePair("groupmates",groupmates[i]));
}
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.1.102/webservice/issertgroup.php");
try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpclient.execute(httppost);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

问题:$groupmates[0] 为空。我怎样才能得到从 android 传递过来的数组??

我用这个方法失败了。请帮我解决这个问题。我在谷歌中搜索了很多引用资料,但仍然无法解决我的问题。

最佳答案

方法一

从 android/java 中将参数作为数组元素传递,如下所示。

for (int i=0;i<8;i++)
{
nameValuePairs.add(new BasicNameValuePair("groupmates["+i+"]",groupmates[i]));
}

它只会在 POST 中传递一个数组,所以在 PHP 中你可以按如下方式获取它:

<?php
$groupmates=$_POST['groupmates'];
// echo $groupmates[0];
// echo $groupmates[1]; <--process your elements as normal array.
?>

方法二:

您应该使用数组的 json 编码字符串。 (我不是 android 人,所以不能提供将数组转换为 json 的代码 fragment ,但它的任务很简单,你可能应该知道。)

nameValuePairs.add(new BasicNameValuePair("groupmates",jsonGroupmates));

并在 php 中使用以下内容:

$groupmates=json_decode($_POST['groupmates']);

这应该有效。

关于java - php从android获取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28024285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com