gpt4 book ai didi

php - 如何使用包含许多记录的php将arraylist从android发送到服务器(wamp)

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

我正在使用 php 将 arraylist 从 android 手机发送到服务器 (wamp)。

这是arraylist的输出

03-04 12:46:54.588: I/System.out(477): 调用数据数组列表内容[tot_records=14, customer_id=abcd, phnumber=253647, type=OUTGOING, date=1/27/12 2: 50:17 PM,持续时间=11,phnumber=456987,type=OUTGOING,date=1/27/12 3:41:02 PM,duration=9,phnumber=5554,type=OUTGOING,date=1/27/12下午 4:05:42,持续时间 = 14]

我想将这个数组列表发送到服务器并在那里检索它,但它只插入最后一条记录:phnumber=5554,type=OUTGOING,date=1/27/12 4:05:42 PM,duration=14

这是我的java文件:phpconnect.java

package your.database.namespace;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;

import android.util.Log;


public class phpconnect
{
public phpconnect(DatabaseActivity databaseActivity)
{
// TODO Auto-generated constructor stub
}

public void sendData(ArrayList<NameValuePair> data)
{
// 1) Connect via HTTP. 2) Encode data. 3) Send data.
try
{ System.out.println("send data"+data);
HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost("http://10.0.2.2/phpfiles/calllog.php");
System.out.println(httppost);
httppost.setEntity(new UrlEncodedFormEntity(data));
System.out.println("send data2");
HttpResponse response = httpclient.execute(httppost);
HttpEntity http_entity = response.getEntity();
Log.i("postData", response.getStatusLine().toString());
BufferedReader br = new BufferedReader(
new InputStreamReader(http_entity.getContent()));
String result = br.readLine();
System.out.println(result);
//Could do something better
}
catch(SocketException ex)
{
Log.e("Error : " , "Error on soapPrimitiveData() " + ex.getMessage());
ex.printStackTrace();
}

catch(Exception e)
{
Log.e("log_tag", "Error: "+e.toString());
}
}}

这是我的 php 文件:calllog.php

<?php

$con=mysql_connect("localhost","root","");
echo $con;
if(!con)
{
echo 'Not Connected......';
}
else
{
echo 'CONNECTED.............';
}
$db=mysql_select_db('serverdb',$con);
echo $db;
if($db)
{
// return true;
echo "connection established";
}
else
{
echo "not conect";
}
$tot_records = $_POST["tot_records"];

$customer_id = $_POST["customer_id"];
echo $customer_id;
$i=($tot_records-2)/4;
echo $i;
//while(i>0)
//{
$number = $_POST["phnumber"];
$type = $_POST["type"];
$date = $_POST["date"];
$duration = $_POST["duration"];
$query = "INSERT INTO calllogdb (number,type,date,duration)
VALUES (' $number','$type','$date' ,'$duration' )";
$insert_result = mysql_query($query);

if($insert_result)
{
echo 'New Record Added !!';
}


//$i--;
//}

//close the connection
//mysqlEnd();

?>

最佳答案

查看进入 PHP 的原始发布数据(使用 $postdata = file_get_contents("php://input")).这大概是一种 XML 格式,它被转换为一个 PHP 数组,字段名称作为数组键。由于在您的示例数据中,3 条记录具有相同的字段名称,因此在转换为 PHP 数组时,每条记录都会覆盖数组中前一条记录的字段。因此只有最后一条记录被存储。您将需要一个类似于您注释掉的循环来处理所有条目。

关于php - 如何使用包含许多记录的php将arraylist从android发送到服务器(wamp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9553210/

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