title: Android app to insert location data into existing msql database
body: <p>So I am working on a little android app and pretty new to coding. So far, I followed a tutorial and can have the user login/register and it stores/retrieves that info into the MYSQL database. The problem is that I need to add in the code to store the location in the and I am getting confused. </p>
  
  <p>Here is the bulk of what I have and would appreciate some help:</p>
  
  <p>My database is setup as: uid - name - email - password - salt - created_at - updated_at - loclat - loclong</p>
  
  <p>Main activity class:</p>
  
  <pre><code>public class DashboardActivity extends Activity {
  
  UserFunctions userFunctions;
  Button btnLogout;
  Button btnloc;
  GPSTracker gps;
  
  
  
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
  
  
           /**
       * Dashboard Screen for the application
       * */
      // Check login status in database
      userFunctions = new UserFunctions();
      if(userFunctions.isUserLoggedIn(getApplicationContext())){
  
     // user already logged in show databoard
          setContentView(R.layout.dashboard);
  
          gps = new GPSTracker(DashboardActivity.this);
          if(gps.canGetLocation()){
  
              double latitude = gps.getLatitude();
              double longitude = gps.getLongitude();
  
              // \n is for new line
              Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
  
          }else{
              // can't get location
              // GPS or Network is not enabled
              // Ask user to enable GPS/network in settings
              gps.showSettingsAlert();
          };
  
  
          btnLogout = (Button) findViewById(R.id.btnLogout);
  
          btnLogout.setOnClickListener(new View.OnClickListener() {
  
  
              public void onClick(View arg0) {
                  // TODO Auto-generated method stub
                  userFunctions.logoutUser(getApplicationContext());
                  Intent login = new Intent(getApplicationContext(), LoginActivity.class);
                  login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                  startActivity(login);
                  // Closing dashboard screen
                  finish();
              }
          });
  
      }else{
          // user is not logged in show login screen
          Intent login = new Intent(getApplicationContext(), LoginActivity.class);
          login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
          startActivity(login);
          // Closing dashboard screen
          finish();
      }
  }
  }
  </code></pre>
  
  <p>User function java file:</p>
  
  <pre><code>public class UserFunctions {
  
  private JSONParser jsonParser;
  
  // Testing in localhost using wamp or xampp
  // use http://10.0.2.2/ to connect to your localhost ie http://localhost/
  private static String loginURL = "url removed";
  private static String registerURL = "url removed";
  
  private static String login_tag = "login";
  private static String register_tag = "register";
  
  // constructor
  public UserFunctions(){
      jsonParser = new JSONParser();
  }
  
  /**
   * function make Login Request
   * @param email
   * @param password
   * */
  public JSONObject loginUser(String email, String password){
      // Building Parameters
      List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
      params.add(new BasicNameValuePair("tag", login_tag));
      params.add(new BasicNameValuePair("email", email));
      params.add(new BasicNameValuePair("password", password));
      JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);
      // return json
      // Log.e("JSON", json.toString());
      return json;
  }
  
  /**
   * function make Login Request
   * @param name
   * @param email
   * @param password
   * */
  public JSONObject registerUser(String name, String email, String password){
      // Building Parameters
      List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
      params.add(new BasicNameValuePair("tag", register_tag));
      params.add(new BasicNameValuePair("name", name));
      params.add(new BasicNameValuePair("email", email));
      params.add(new BasicNameValuePair("password", password));
  
      // getting JSON Object
      JSONObject json = jsonParser.getJSONFromUrl(registerURL, params);
      // return json
      return json;
  }
  
  /**
   * Function get Login status
   * */
  public boolean isUserLoggedIn(Context context){
      DatabaseHandler db = new DatabaseHandler(context);
      int count = db.getRowCount();
      if(count &gt; 0){
          // user logged in
          return true;
      }
      return false;
  }
  
  /**
   * Function to logout user
   * Reset Database
   * */
  public boolean logoutUser(Context context){
      DatabaseHandler db = new DatabaseHandler(context);
      db.resetTables();
      return true;
  }
  
  }
  </code></pre>
  
  <p>JSON file</p>
  
  <pre><code>public class JSONParser {
  
  static InputStream is = null;
  static JSONObject jObj = null;
  static String json = "";
  
  // constructor
  public JSONParser() {
  
  }
  
  public JSONObject getJSONFromUrl(String url, List&lt;NameValuePair&gt; params) {
  
      // Making HTTP request
      try {
          // defaultHttpClient
          DefaultHttpClient httpClient = new DefaultHttpClient();
          HttpPost httpPost = new HttpPost(url);
          httpPost.setEntity(new UrlEncodedFormEntity(params));
  
          HttpResponse httpResponse = httpClient.execute(httpPost);
          HttpEntity httpEntity = httpResponse.getEntity();
          is = httpEntity.getContent();
  
      } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
      } catch (ClientProtocolException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
  
      try {
          BufferedReader reader = new BufferedReader(new InputStreamReader(
                  is, "iso-8859-1"), 8);
          StringBuilder sb = new StringBuilder();
          String line = null;
          while ((line = reader.readLine()) != null) {
              sb.append(line + "n");
          }
          is.close();
          json = sb.toString();
          Log.e("JSON", json);
      } catch (Exception e) {
          Log.e("Buffer Error", "Error converting result " + e.toString());
      }
  
      // try parse the string to a JSON object
      try {
          jObj = new JSONObject(json);
      } catch (JSONException e) {
          Log.e("JSON Parser", "Error parsing data " + e.toString());
      }
  
      // return JSON String
      return jObj;
  
  }
  }
  </code></pre>
  
  <p>World service</p>
  
  <pre><code>public class LocalWordService extends Service {
    private final IBinder mBinder = new MyBinder();
    private ArrayList&lt;String&gt; list = new ArrayList&lt;String&gt;();
  
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
  
      Random random = new Random();
      if (random.nextBoolean()) {
        list.add("Linux");
      }
      if (random.nextBoolean()) {
        list.add("Android");
      }
      if (random.nextBoolean()) {
        list.add("iPhone");
      }
      if (random.nextBoolean()) {
        list.add("Windows7");
      }
      if (list.size() &gt;= 20) {
        list.remove(0);
      }
      return Service.START_NOT_STICKY;
    }
  
    @Override
    public IBinder onBind(Intent arg0) {
      return mBinder;
    }
  
    public class MyBinder extends Binder {
      public LocalWordService getService() {
        return LocalWordService.this;
      }
    }
  
    public List&lt;String&gt; getWordList() {
      return list;
    }
  
  } 
  </code></pre>
  
  <p>Dbase.php file:</p>
  
  <pre><code>if (isset($_POST['tag']) &amp;&amp; $_POST['tag'] != '') {
  // get tag
  $tag = $_POST['tag'];
  
  // include db handler
  require_once 'include/DB_Functions.php';
  $db = new DB_Functions();
  
  // response Array
  $response = array("tag" =&gt; $tag, "success" =&gt; 0, "error" =&gt; 0);
  
  // check for tag type
  if ($tag == 'login') {
      // Request type is check Login
      $email = $_POST['email'];
      $password = $_POST['password'];
  
      // check for user
      $user = $db-&gt;getUserByEmailAndPassword($email, $password);
      if ($user != false) {
          // user found
          // echo json with success = 1
          $response["success"] = 1;
          $response["uid"] = $user["unique_id"];
          $response["user"]["name"] = $user["name"];
          $response["user"]["email"] = $user["email"];
          $response["user"]["created_at"] = $user["created_at"];
          $response["user"]["updated_at"] = $user["updated_at"];
          echo json_encode($response);
      } else {
          // user not found
          // echo json with error = 1
          $response["error"] = 1;
          $response["error_msg"] = "Incorrect email or password!";
          echo json_encode($response);
      }
  } else if ($tag == 'register') {
      // Request type is Register new user
      $name = $_POST['name'];
      $email = $_POST['email'];
      $password = $_POST['password'];
  
      // check if user is already existed
      if ($db-&gt;isUserExisted($email)) {
          // user is already existed - error response
          $response["error"] = 2;
          $response["error_msg"] = "User already existed";
          echo json_encode($response);
      } else {
          // store user
          $user = $db-&gt;storeUser($name, $email, $password);
          if ($user) {
              // user stored successfully
              $response["success"] = 1;
              $response["uid"] = $user["unique_id"];
              $response["user"]["name"] = $user["name"];
              $response["user"]["email"] = $user["email"];
              $response["user"]["created_at"] = $user["created_at"];
              $response["user"]["updated_at"] = $user["updated_at"];
              echo json_encode($response);
          } else {
              // user failed to store
              $response["error"] = 1;
              $response["error_msg"] = "Error occured in Registartion";
              echo json_encode($response);
          }
      }
  } else {
      echo "Invalid Request";
  }
  } else {
  echo "Access Denied";
  }
  ?&gt;
  </code></pre>
  
  <p>DB_Connect.php</p>
  
  <pre><code>&lt;?php
  class DB_Connect {
  
  // constructor
  function __construct() {
  
  }
  
  // destructor
  function __destruct() {
      // $this-&gt;close();
  }
  
  // Connecting to database
  public function connect() {
      require_once 'include/config.php';
      // connecting to mysql
      $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
      // selecting database
      mysql_select_db(DB_DATABASE);
  
      // return database handler
      return $con;
  }
  
  // Closing database connection
  public function close() {
      mysql_close();
  }
  
  }
  
  ?&gt;
  </code></pre>
  
  <p>DB_Functions.php</p>
  
  <pre><code>&lt;?php
  
  class DB_Functions {
  
  private $db;
  
  //put your code here
  // constructor
  function __construct() {
      require_once 'DB_Connect.php';
      // connecting to database
      $this-&gt;db = new DB_Connect();
      $this-&gt;db-&gt;connect();
  }
  
  // destructor
  function __destruct() {
  
  }
  
  /**
   * Storing new user
   * returns user details
   */
  public function storeUser($name, $email, $password) {
      $uuid = uniqid('', true);
      $hash = $this-&gt;hashSSHA($password);
      $encrypted_password = $hash["encrypted"]; // encrypted password
      $salt = $hash["salt"]; // salt
      $result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES('$uuid', '$name', '$email', '$encrypted_password', '$salt', NOW())");
      // check for successful store
      if ($result) {
          // get user details 
          $uid = mysql_insert_id(); // last inserted id
          $result = mysql_query("SELECT * FROM users WHERE uid = $uid");
          // return user details
          return mysql_fetch_array($result);
      } else {
          return false;
      }
  }
  
  /**
   * Get user by email and password
   */
  public function getUserByEmailAndPassword($email, $password) {
      $result = mysql_query("SELECT * FROM users WHERE email = '$email'") or die(mysql_error());
      // check for result 
      $no_of_rows = mysql_num_rows($result);
      if ($no_of_rows &gt; 0) {
          $result = mysql_fetch_array($result);
          $salt = $result['salt'];
          $encrypted_password = $result['encrypted_password'];
          $hash = $this-&gt;checkhashSSHA($salt, $password);
          // check for password equality
          if ($encrypted_password == $hash) {
              // user authentication details are correct
              return $result;
          }
      } else {
          // user not found
          return false;
      }
  }
  
  /**
   * Check user is existed or not
   */
  public function isUserExisted($email) {
      $result = mysql_query("SELECT email from users WHERE email = '$email'");
      $no_of_rows = mysql_num_rows($result);
      if ($no_of_rows &gt; 0) {
          // user existed 
          return true;
      } else {
          // user not existed
          return false;
      }
  }
  
  /**
   * Encrypting password
   * @param password
   * returns salt and encrypted password
   */
  public function hashSSHA($password) {
  
      $salt = sha1(rand());
      $salt = substr($salt, 0, 10);
      $encrypted = base64_encode(sha1($password . $salt, true) . $salt);
      $hash = array("salt" =&gt; $salt, "encrypted" =&gt; $encrypted);
      return $hash;
  }
  
  /**
   * Decrypting password
   * @param salt, password
   * returns hash string
   */
  public function checkhashSSHA($salt, $password) {
  
      $hash = base64_encode(sha1($password . $salt, true) . $salt);
  
      return $hash;
  }
  
  }
  
  ?&gt;
  </code></pre>
  
  <p>Sorry for the wall of code but I just am unsure what is helpful and what is not. How do I insert the latitude and longitude to the database with the oncreate of the main activity? I get the latitude and longitude just fine and connect to the database when logging in.</p>