android restful webservice将数据数组发送到php并在服务器中检索数据

时间:2015-03-19 09:31:19

标签: php android web-services rest

我想从android发送值数组到php插入MySQL数据库。这是我的android代码。

List<NameValuePair> params = new ArrayList<NameValuePair>();

    for (String receiver : receivers) {
        params.add(new BasicNameValuePair("receiverid", receiver));
    }
    params.add(new BasicNameValuePair("senderid", args[0]));
    params.add(new BasicNameValuePair("subject", args[1]));
    params.add(new BasicNameValuePair("message", args[2]));
    params.add(new BasicNameValuePair("msgdt", args[3]));
    params.add(new BasicNameValuePair("msgtime", args[4]));
    // params.add(new BasicNameValuePair("receiverid[]", args[5]));

    JSONParser jsonParser = new JSONParser();
    JSONObject json = jsonParser.makeHttpRequest(
            Constants.URL_admin_send_message, "POST", params);

    try {

        // JSONArray categories = json.getJSONArray("success");

        String val = json.getString("success");

        if (val.equals("1")) {
            status = true;

        } else {
            status = false;
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }

这是我的PHP代码。

try

{

$receiverid =array();
$s="";
$senderid =$_POST['senderid'];
$subject=$_POST['subject'];
$message=$_POST['message'];

$msgdt=$_POST['msgdt'];
$msgtime =$_POST['msgtime'];
$receiverid =$_POST['receiverid'];
$response = array();

for($i=0; $i<count($receiverid);$i++)
 {

$s=mysql_query("insert into `schoolsystem`.`sch_message` 
( 
`sender_id`, 
`subject`, 
`message`, 
`msg_date`, 
`msg_time`, 
`receiver_id` 

)
values
(
'$senderid', 
'$subject', 
'$message', 
'$msgdt', 
'$msgtime', 
'$receiverid[$i]')");

} 

我没有得到我从我的android代码发送的所有值。在php中的for循环只工作一次所以我只在$ receiverid [$ i]中得到一个值。只得到一个值..请帮帮我

1 个答案:

答案 0 :(得分:1)

如果要将参数作为数组,则必须在参数名称中包含[]。将receiverid替换为receiverid[]