Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串从Android发布到PHP_Php_Android_Apache_Http_Post - Fatal编程技术网

将字符串从Android发布到PHP

将字符串从Android发布到PHP,php,android,apache,http,post,Php,Android,Apache,Http,Post,我无法将字符串从Android发布到PHP。我试图发布一个用户名,因为我要从查询中排除当前用户的用户名。在Java中,我在doInBackground(字符串参数)中有一个异步任务,代码如下 ArrayList data_to_send=new ArrayList(); 添加(新的BasicNameValuePair(“用户名”,Username)); HttpParams httpRequestParams=新的BasicHttpParams(); HttpConnectionParams.s

我无法将字符串从Android发布到PHP。我试图发布一个用户名,因为我要从查询中排除当前用户的用户名。在Java中,我在doInBackground(字符串参数)中有一个异步任务,代码如下

ArrayList data_to_send=new ArrayList();
添加(新的BasicNameValuePair(“用户名”,Username));
HttpParams httpRequestParams=新的BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams,ServerRequests.CONNECTION\u超时);
HttpConnectionParams.setSoTimeout(httpRequestParams,ServerRequests.CONNECTION\u超时);
HttpClient客户端=新的默认HttpClient(httpRequestParams);
HttpPost=newhttppost(ServerRequests.SERVER_ADDRESS+“TestQuery.php”);
试一试{
post.setEntity(新的UrlEncodedFormEntity(数据发送));
客户。执行(post);
}捕获(例外e){
e、 printStackTrace();
}
这是在我的php中:

$origLat = 45.6215349;
$origLon = 18.6951613;
$dist = 30; 
$username = $_POST["Username"];

$sql = "SELECT ID, Username, Name, Age, City, Gender, Latitude, Longitude, 3956 * 2 * 1.609344 * 1000 *
      ASIN(SQRT( POWER(SIN(($origLat - abs(Latitude))*pi()/180/2),2)
      +COS($origLat*pi()/180 )*COS(abs(Latitude)*pi()/180)
      *POWER(SIN(($origLon-Longitude)*pi()/180/2),2))) 
      as distance FROM users WHERE Username != '$username'
      AND Longitude BETWEEN ($origLon-$dist/abs(cos(radians($origLat))*69)) 
      AND ($origLon+$dist/abs(cos(radians($origLat))*69)) 
      AND Latitude BETWEEN ($origLat-($dist/69)) 
      AND ($origLat+($dist/69))
      HAVING distance < $dist ORDER BY distance limit 30;"; 
$origLat=45.6215349;
$origLon=18.6951613;
$dist=30;
$username=$_POST[“username”];
$sql=“选择ID、用户名、姓名、年龄、城市、性别、纬度、经度,3956*2*1.609344*1000*
ASIN(SQRT(功率(SIN($origLat-abs(纬度))*pi()/180/2),2)
+COS($origLat*pi()/180)*COS(abs(纬度)*pi()/180)
*功率(SIN($origLon经度)*pi()/180/2),2)
与用户名为“$Username”的用户的距离
经度介于($origLon-$dist/abs(cos(弧度($origLat))*69))
和($origLon+$dist/abs(cos(弧度($origLat))*69))
以及($origLat-($dist/69))之间的纬度
和($origLat+($dist/69))
距离<$dist-ORDER距离限制为30;”;

当我通过更改
用户名!='Jawe’
,但我不确定为什么从Android发布时它不起作用。有人知道这个问题吗?

在Java代码中,
username
的值是多少?logcat中是否显示了相关信息?您可以记录到达服务器的原始查询(或者测试它是否确实到达)?嗯,这在logcat:W/SingleClientConnManager中显示﹕ SingleClientConnManager的使用无效:仍在分配连接。请确保在分配另一个连接之前释放该连接。已解决该问题!我有两个客户执行了这篇文章。很高兴你解决了它。您可能想发布您自己的问题答案,并将其标记为解决方案。这样,其他人可能会更好地从中受益。
$origLat = 45.6215349;
$origLon = 18.6951613;
$dist = 30; 
$username = $_POST["Username"];

$sql = "SELECT ID, Username, Name, Age, City, Gender, Latitude, Longitude, 3956 * 2 * 1.609344 * 1000 *
      ASIN(SQRT( POWER(SIN(($origLat - abs(Latitude))*pi()/180/2),2)
      +COS($origLat*pi()/180 )*COS(abs(Latitude)*pi()/180)
      *POWER(SIN(($origLon-Longitude)*pi()/180/2),2))) 
      as distance FROM users WHERE Username != '$username'
      AND Longitude BETWEEN ($origLon-$dist/abs(cos(radians($origLat))*69)) 
      AND ($origLon+$dist/abs(cos(radians($origLat))*69)) 
      AND Latitude BETWEEN ($origLat-($dist/69)) 
      AND ($origLat+($dist/69))
      HAVING distance < $dist ORDER BY distance limit 30;";