function queryRemoteDBForUpdatedValues($id, $firstnameCheck, $lastnameCheck, $genderCheck, $birthdateCheck, $addressCheck, $postalcodeCheck, $phonenumCheck, $isInDBCheck, $lastmodifiedCheck) { // connecting to db DatabaseConnect(); $query = "SELECT * FROM children where child_id='{$id}' and existsinremotedb='{$isInDBCheck}' ;"; $result = pg_query($query) or die('Query failed: ' . pg_last_error()); // user node unset($response["success"]); unset($response["message"]); $response["children"] = array(); $idColName = "child_id"; $FnameColName = "child_firstname"; $LnameColName = "child_lastname"; $genderColName = "child_gender"; $birthdateColName = "child_birthdate"; $addressColName = "child_address"; $postalcodeColName = "child_postalcode"; $phonenumColName = "child_phonenum"; $existsColName = "existsinremotedb"; $lastModifiedColName = "lastmodified"; // temp user array // In $row[] the actual column names from the remote database must be within the squre brackets $children = array(); $children["{$idColName}"] = $row["{$idColName}"]; $children["{$FnameColName}"] = $row["{$FnameColName}"]; $children["{$LnameColName}"] = $row["{$LnameColName}"]; $children["{$genderColName}"] = $row["{$genderColName}"]; $children["{$birthdateColName}"] = $row["{$birthdateColName}"]; $children["{$addressColName}"] = $row["{$addressColName}"]; $children["{$postalcodeColName}"] = $row["{$postalcodeColName}"]; $children["{$phonenumColName}"] = $row["{$phonenumColName}"]; $children["{$existsColName}"] = $row["{$existsColName}"]; $children["{$lastModifiedColName}"] = $row["{$lastModifiedColName}"]; // push single user into final response array array_push($response["children"], $children); $isNewer = localDBDateisNewer($children["{$lastModifiedColName}"], $lastmodifiedCheck); // Primary keys is child_id so they are not allowed to be changed //If data in the local database is newer if ($isNewer) { //If first name has been updated if (isDifFromRemoteDB($children["{$FnameColName}"], $firstnameCheck)) { updateRemoteDB($id, $children["{$FnameColName}"], $firstnameCheck); //Recursive call to check for any other updated values queryRemoteDBForUpdatedValues($id, $firstnameCheck, $lastnameCheck, $genderCheck, $birthdateCheck, $addressCheck, $postalcodeCheck, $phonenumCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($children["{$LnameColName}"], $lastnameCheck)) { updateRemoteDB($id, $children["{$LnameColName}"], $lastnameCheck); //Recursive call to check for any other updated values queryRemoteDBForUpdatedValues($id, $firstnameCheck, $lastnameCheck, $genderCheck, $birthdateCheck, $addressCheck, $postalcodeCheck, $phonenumCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($children["{$genderColName}"], $genderCheck)) { updateRemoteDB($id, $children["{$genderColName}"], $genderCheck); //Recursive call to check for any other updated values queryRemoteDBForUpdatedValues($id, $firstnameCheck, $lastnameCheck, $genderCheck, $birthdateCheck, $addressCheck, $postalcodeCheck, $phonenumCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($children["{$birthdateColName}"], $birthdateCheck)) { updateRemoteDB($id, $children["{$birthdateColName}"], $birthdateCheck); //Recursive call to check for any other updated values queryRemoteDBForUpdatedValues($id, $firstnameCheck, $lastnameCheck, $genderCheck, $birthdateCheck, $addressCheck, $postalcodeCheck, $phonenumCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($children["{$addressColName}"], $addressCheck)) { updateRemoteDB($id, $children["{$addressColName}"], $addressCheck); queryRemoteDBForUpdatedValues($id, $firstnameCheck, $lastnameCheck, $genderCheck, $birthdateCheck, $addressCheck, $postalcodeCheck, $phonenumCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($children["{$postalcodeColName}"], $postalcodeCheck)) { updateRemoteDB($id, $children["{$postalcodeColName}"], $postalcodeCheck); queryRemoteDBForUpdatedValues($id, $firstnameCheck, $lastnameCheck, $genderCheck, $birthdateCheck, $addressCheck, $postalcodeCheck, $phonenumCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($children["{$phonenumColName}"], $phonenumCheck)) { updateRemoteDB($id, $children["{$phonenumColName}"], $phonenumCheck); queryRemoteDBForUpdatedValues($id, $firstnameCheck, $lastnameCheck, $genderCheck, $birthdateCheck, $addressCheck, $postalcodeCheck, $phonenumCheck, $isInDBCheck, $lastmodifiedCheck); } else { updateRemoteDB($id, $children["{$lastModifiedColName}"], $lastmModifiedCheck); } } elseif (!$isNewer) { array_push($response["children"], $children); // success tag for android application to handle $response["success"] = 4; $response["message"] = "Local DB is not newer"; echo json_encode($response); unsetResponseArray(); } else { unset($response["success"]); unset($response["message"]); $response["success"] = 3; $respone["message"] = "No updates needed"; // echoing JSON response echo json_encode($response); unsetResponseArray(); } }
function queryRemoteDBForUpdatedValues($idCheck, $nameCheck, $addressCheck, $phonenumCheck, $descriptionCheck, $isInDBCheck, $lastmodifiedCheck) { // connecting to db DatabaseConnect(); $query = "SELECT * FROM institutions where institution_id='{$id}' and existsinremotedb='{$isInDBCheck}' ;"; $result = pg_query($query) or die('Query failed: ' . pg_last_error()); $response["institutions"] = array(); $idColName = "institution_id"; $nameColName = "institution_name"; $addressColName = "institution_address"; $phonenumColName = "institution_phonenum"; $descriptionColName = "institution_description"; $existsColName = "existsinremotedb"; $lastModifiedColName = "lastmodified"; $institutions = array(); $institutions["{$idColName}"] = $row["{$idColName}"]; $institutions["{$nameColName}"] = $row["{$nameColName}"]; $institutions["{$addressColName}"] = $row["{$addressColName}"]; $institutions["{$phonenumColName}"] = $row["{$phonenumColName}"]; $institutions["{$descriptionColName}"] = $row["{$descriptionColName}"]; $institutions["{$existsColName}"] = $row["{$existsColName}"]; $institutions["{$lastModifiedColName}"] = $row["{$lastModifiedColName}"]; // push single user into final response array array_push($response["institutions"], $institutions); $isNewer = localDBDateisNewer($institutions["{$lastModifiedColName}"], $lastmodifiedCheck); /* * Primary keys are username, first name, and last name so they are not allowed to be changed */ //If data in the local database is newer if ($isNewer) { //If password has been updated if (isDifFromRemoteDB($institutions["{$nameColName}"], $nameCheck)) { updateRemoteDB($idCheck, $institutions["{$nameColName}"], $nameCheck); //Recursive call to check for any other updated values queryRemoteDBForUpdatedValues($idCheck, $nameCheck, $addressCheck, $phonenumCheck, $descriptionCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($institutions["{$addressColName}"], $addressCheck)) { updateRemoteDB($idCheck, $institutions["{$addressColName}"], $addressCheck); //Recursive call to check for any other updated values queryRemoteDBForUpdatedValues($idCheck, $nameCheck, $addressCheck, $phonenumCheck, $descriptionCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($institutions["{$phonenumColName}"], $phonenumCheck)) { updateRemoteDB($idCheck, $institutions["{$phonenumColName}"], $phonenumCheck); //Recursive call to check for any other updated values queryRemoteDBForUpdatedValues($idCheck, $nameCheck, $addressCheck, $phonenumCheck, $descriptionCheck, $isInDBCheck, $lastmodifiedCheck); } elseif (isDifFromRemoteDB($institutions["{$descriptionColName}"], $descriptionCheck)) { updateRemoteDB($idCheck, $institutions["{$descriptionColName}"], $descriptionCheck); //Recursive call to check for any other updated values queryRemoteDBForUpdatedValues($idCheck, $nameCheck, $addressCheck, $phonenumCheck, $descriptionCheck, $isInDBCheck, $lastmodifiedCheck); } else { updateRemoteDB($idCheck, $institutions["{$lastModifiedColName}"], $lastmModifiedCheck); } } elseif (!$isNewer) { array_push($response["institutions"], $institutions); // success tag for android application to handle $response["success"] = 4; $response["message"] = "Local DB is not newer"; echo json_encode($response); unsetResponseArray(); } else { $response["success"] = 3; $respone["message"] = "No updates needed"; // echoing JSON response echo json_encode($response); unsetResponseArray(); } }