بسم الله الرحمن الرحيم
السلام عليكم
عندي قاعدة بيانات على سرفر مجاني فيها جدول متكون من 3 خانات : id - latitude - longitude
قمت ببرنامج على الأندرويد يقوم بإرسال latitude - longitude و هم من نوع Double .
المشكل أن اﻹحداثيات تصل إلى قاعدة البيانات من نوع Integer.
مثال :
عندما أقوم بارسال :
latitude : 10.2546
longitude : 25.3214
أجد في القاعدة
latitude : 10
longitude : 25
package sami.com;
import java.io.InputStream;
import java.util.ArrayList;
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 org.apache.http.message.BasicNameValuePair;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
public class ClientAmbulancesActivity extends MapActivity implements
LocationListener {
/** Called when the activity is first created. */
// public static final String strURL = "http://sami.4sql.net/www/sami/updateAmbulance.php";
public static final String strURL ="http://localiserambulance.vacau.com/updateAmbulance.php";
InputStream is = null;
MapView map;
Geocoder geocoder;
MapController mapController;
LocationManager lm;
MyLocationOverlay location = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*
* map = (MapView) this.findViewById(R.id.mapView);
* map.setBuiltInZoomControls(true); mapController =
* map.getController(); mapController.setZoom(15); location = new
* MyLocationOverlay(this, map); map.getOverlays().add(location);
* location.enableMyLocation();
*/
lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30000, 0, this);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 30000, 0,
this);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
double myLonDouble = location.getLongitude();
String myLon = Double.toString(myLonDouble);
double myLatDouble = location.getLatitude();
String myLat = Double.toString(myLatDouble);
String id = "A1";
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("longitude", myLon));
nameValuePairs.add(new BasicNameValuePair("latitude", myLat));
nameValuePairs.add(new BasicNameValuePair("id", id));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(strURL);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
}
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
} <?php
$con = mysql_connect("*************","****************","*******");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("************", $con);
$query = "UPDATE table_ambulances
SET longitude = '$_REQUEST[longitude]', latitude = '$_REQUEST[latitude]'
WHERE id = '$_REQUEST[id]'";
mysql_query($query,$con) or die("error: " . mysql_error());
mysql_close($con)
?>