これは私の他の質問に関するものです:緯度と経度の値をMySQLデータベースiOSに保存する
このコードが緯度と経度の値を文字列または数値として保存しているかどうかを教えてください。文字列として保存する場合、数字として保存する方法を教えてください。
また、それらのmysqlフィールドをfloatタイプとして設定しました。
PHP
<?php
$username = "username";
$database = "database";
$password = "password";
mysql_connect(localhost, $username, $password);
@mysql_select_db($database) or die("unable to find database");
$name = $_GET["name"];
$address = $_GET["address"];
$city = $_GET["city"];
$county = $_GET["county"];
$country = $_GET["country"];
$postcode = $_GET["postcode"];
$date = $_GET["date"];
$time = $_GET["time"];
$latitude = $_GET["latitude"];
$longitude = $_GET["longitude"];
$query = "INSERT INTO map VALUES ('', '$name', '$address', '$city', '$county', '$country', '$postcode', '$date', '$time', '$latitude', '$longitude')";
mysql_query($query) or die(mysql_error("error"));
mysql_close();
?>
AddSessionViewController.h
#import <UIKit/UIKit.h>
#define kpostURL @"http://myurl.com/map.php"
#define kname @"name"
#define kaddress @"address"
#define kcity @"city"
#define kcounty @"county"
#define kcountry @"country"
#define kpostcode @"postcode"
#define kdate @"date"
#define ktime @"time"
#define klatitude @"latitude"
#define klongitude @"longitude"
@interface addSessionViewController : UIViewController {
IBOutlet UITextField *nameText;
IBOutlet UITextField *addressText;
IBOutlet UITextField *cityText;
IBOutlet UITextField *countyText;
IBOutlet UITextField *countryText;
IBOutlet UITextField *postcodeText;
IBOutlet UITextField *dateText;
IBOutlet UITextField *timeText;
IBOutlet UITextField *latitudeText;
IBOutlet UITextField *longitudeText;
NSURLConnection *postConnection;
}
-(IBAction)post:(id)sender;
-(IBAction)getLatLon:(id)sender;
-(void) postMessage:(NSString*) postcode withName:(NSString *) name withAddress:(NSString *) address withCity:(NSString *) city withCounty:(NSString *) county withCountry:(NSString *) country withDate:(NSString *) date withTime:(NSString *) time withLatitude:(NSString *) latitude withLongitude:(NSString *) longitude;
AddSessionViewController.m
-(void) postMessage:(NSString*) postcode withName:(NSString *) name withAddress:(NSString *) address withCity:(NSString *) city withCounty:(NSString *) county withCountry:(NSString *) country withDate:(NSString *) date withTime:(NSString *) time withLatitude:(NSString *)latitude withLongitude:(NSString *)longitude; {
if (name != nil && address != nil && city != nil && county != nil && country != nil && postcode !=nil && date != nil && time != nil && latitude != nil && longitude != nil){
NSMutableString *postString = [NSMutableString stringWithString:kpostURL];
[postString appendString:[NSString stringWithFormat:@"?%@=%@", kname, name]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kaddress, address]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kcity, city]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kcounty, county]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kcountry, country]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kpostcode, postcode]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kdate, date]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", ktime, time]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", klatitude, latitude]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", klongitude, longitude]];
[postString setString:[postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];
[request setHTTPMethod:@"POST"];
postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
}
-(IBAction)post:(id)sender{
[self postMessage:(NSString*) postcodeText.text withName:nameText.text withAddress:addressText.text withCity:cityText.text withCounty:countyText.text withCountry:countryText.text withDate:dateText.text withTime:timeText.text withLatitude:latitudeText.text withLongitude:longitudeText.text];
[postcodeText resignFirstResponder];
nameText.text = nil;
addressText.text = nil;
cityText.text = nil;
countyText.text = nil;
countryText.text = nil;
postcodeText.text = nil;
dateText.text = nil;
timeText.text = nil;
latitudeText.text = nil;
longitudeText.text = nil;
[[NSNotificationCenter defaultCenter] postNotificationName:@"Test2" object:self];
}
-(IBAction)getLatLon:(id)sender{
NSString *eventName = [nameText text];
NSString *eventAddress = [addressText text];
NSString *eventCity = [cityText text];
NSString *eventCountry = [countryText text];
NSString *eventCounty = [countyText text];
NSString *eventDate = [dateText text];
NSString *eventPostCode = [postcodeText text];
NSString *eventTime = [timeText text];
// Use this to build the full event string
NSString *addressString = [NSString stringWithFormat:@"%@,%@,%@,%@,%@,%@,%@,%@", eventName, eventAddress, eventCity, eventCounty, eventCountry, eventPostCode, eventDate, eventTime];
// A search can't inlude the event and time and hour as it means nothing to MapKit
// The geocodeAddressString simply contains the address info
NSString *geocodeAddressString = [NSString stringWithFormat:@"%@,%@,%@,%@,%@", eventAddress, eventCity, eventCounty, eventCountry, eventPostCode];
//NSLog(@"Hello %@",addressString);
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:geocodeAddressString completionHandler:^(NSArray* placemarks, NSError* error){
// Check for returned placemarks
if (placemarks && placemarks.count > 0) {
CLPlacemark *topResult = [placemarks objectAtIndex:0];
//NSLog([topResult locality]);
//NSLog([topResult location]);
//MKCoordinateRegion region;
//double *value = topResult.region.center.latitude;
CLLocationDegrees latitude = topResult.region.center.latitude;
CLLocationDegrees longitude = topResult.location.coordinate.longitude;
NSString *latitudeString = [NSString stringWithFormat:@"%f",latitude];
NSString *longitudeString = [NSString stringWithFormat:@"%f",longitude];
latitudeText.text = latitudeString;
longitudeText.text = longitudeString;
NSLog(@"Lat: %f", latitude);
NSLog(@"Long: %f", longitude);
}
}];
}