Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone



Clound SSD Virtual Server

iOS/iPhone Add Insert Data to Web Server (URL,Website, PHP and MySQL)

iOS/iPhone Add Insert Data to Web Server (URL,Website) บทความการเขียน iOS ในการเชื่อมต่อกับ Web Server ผ่าน Class ของ NSURLConnection ในการที่จะส่ง POST ค่าจาก iOS ซึ่งทำหน้าที่เป็น Client ไปยัง Web Server โดยจะใช้ PHP กับ MySQL ทำหน้าที่รับและจัดเก็บ Insert ข้อมูลต่าง ๆ เหล่านั้นลงใน MySQL Database และหลังจากที่ PHP ทำงานเรียบร้อยแล้วก็จะส่งค่า Status การทำงาน โดยใช้ JSON เป็นตัวเข้ารหัสข้อมูลกลับมายัง iOS Client และเมื่อ iOS ได้ค่า JSON ทีเก็บ Status เหล่านั้นแล้วก็จะแสดงและแจ้งให้ผู้ใช้ทราบว่าข้อมูลที่ส่งไปนั้น สามารถบันทึกได้หรือไม่ ตัวอย่างนี้เหมาะจะเป้นตัวอย่าง App ที่เกี่ยวกับการรับข้อมูล เช่น ระบบลงทะเบียนสมาชิก หรือจะ Apply ใช้กับส่วนอื่น ๆ ของโปรแกรมก็ได้เช่นเดียวกัน

iOS/iPhone Add Insert Data to Web Server (URL,Website)

iOS/iPhone Add Insert Data to Web Server (URL,Website)


ในตัวอย่างนี้เมื่อมีการส่งค่าไปยัง Web Server ผ่าน URL Request และ Method POST จะมีการใช้ Progress แสดงสถานะการทำงาน โดยแทรกการทำงานต่าง ๆ จาก delegate method ของ NSURLConnection

Example ตัวอย่างการเขียน iOS เพื่อส่งข้อมูลไปจัดเก็บยัง Web Server (PHP and MySQL Database)

MySQL Database
CREATE TABLE `member` (
  `MemberID` int(11) NOT NULL auto_increment,
  `Name` varchar(50) NOT NULL,
  `Tel` varchar(50) NOT NULL,
  PRIMARY KEY  (`MemberID`)
) ENGINE=MyISAM  AUTO_INCREMENT=4 ;

-- 
-- Dumping data for table `member`
-- 

INSERT INTO `member` VALUES (1, 'Weerachai', '0819876107');
INSERT INTO `member` VALUES (2, 'Win', '021978032');
INSERT INTO `member` VALUES (3, 'Eak', '0876543210');

โครงสร้างของ MySQL Database สำหรับจัดเก็บข้อมูล

iOS/iPhone Add Insert Data to Web Server (URL,Website)

saveData.php
<?php
	/*** for Sample 
		$_POST["sName"] = "a";
		$_POST["sTel"] = "b";
	*/

	$strName = $_POST["sName"];
	$strTel = $_POST["sTel"];

	$objConnect = mysql_connect("localhost","root","root");
	$objDB = mysql_select_db("mydatabase");

	/*** Insert ***/
	$strSQL = "INSERT INTO member (Name,Tel) 
		VALUES (
			'".$strName."',
			'".$strTel."'
			)
		";

	$objQuery = mysql_query($strSQL);

	$arr = null;
	if(!$objQuery)
	{
		$arr["Status"] = "0";
		$arr["Message"] = "Insert Data Failed";
	}
	else
	{
		$arr["Status"] = "1";
		$arr["Message"] = "Insert Data Successfully";
	}
	
	echo json_encode($arr);
?>

ไฟล์ php ที่ทำหน้าที่รับค่า POST และบันทึกลงใน MySQL Database พร้อม ๆ กับการแจ้ง Status กลับไปให้ Client ได้ทราบ








iOS/iPhone Add Insert Data to Web Server (URL,Website)

เริ่มต้นด้วยการสร้าง Application บน Xcode แบบ Single View Application

iOS/iPhone Add Insert Data to Web Server (URL,Website)

เลือกและไม่เลือกรายการดังรูป

iOS/iPhone Add Insert Data to Web Server (URL,Website)

ตอนนี้หน้าจอ View ยังว่าง ๆ

iOS/iPhone Add Insert Data to Web Server (URL,Website)

ให้ออกแบบหน้าจอ View ด้วย Label, Text Fields และ Button ดังรูป

iOS/iPhone Add Insert Data to Web Server (URL,Website)

ใน Class ของ .h ให้ทำการเชื่อม IBOutlet และ IBAction ดังรูป จากนั้นเขียน Code ต่าง ๆ ทั้งหมดดังนี้

ViewController.h
//
//  ViewController.h
//  addInsertDataToServer
//
//  Created by Weerachai on 12/10/55 BE.
//  Copyright (c) 2555 Weerachai. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UITextField *txtName;
    
    IBOutlet UITextField *txtTel;
}

- (IBAction)btnSave:(id)sender;

@property(nonatomic,assign) NSMutableData *receivedData;

@end









ViewController.m
//
//  ViewController.m
//  addInsertDataToServer
//
//  Created by Weerachai on 12/10/55 BE.
//  Copyright (c) 2555 Weerachai. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
{
    UIAlertView *loading;
}

@end

@implementation ViewController

@synthesize receivedData;

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (IBAction)btnSave:(id)sender {

    //Name=Poo&Tel=023456789"
    NSMutableString *post = [NSString stringWithFormat:@"sName=%@&sTel=%@",[txtName text],[txtTel text]];
    
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
    
    NSURL *url = [NSURL URLWithString:@"https://www.thaicreate.com/url/saveData.php"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                        cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                        timeoutInterval:10.0];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
	[request setHTTPBody:postData];
    
    NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self];
    
    
    // Show Progress Loading...
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    
    loading = [[UIAlertView alloc] initWithTitle:@"" message:@"Please Wait..." delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
    UIActivityIndicatorView *progress= [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)];
    progress.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
    [loading addSubview:progress];
    [progress startAnimating];
    [progress release];
    [loading show];
    
    if (theConnection) {
        self.receivedData = nil;
    } else {
		UIAlertView *connectFailMessage = [[UIAlertView alloc] initWithTitle:@"NSURLConnection " message:@"Failed in viewDidLoad"  delegate: self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
		[connectFailMessage show];
		[connectFailMessage release];
    }
    
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    receivedData = [[NSMutableData alloc] init];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    sleep(5);
    [receivedData appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    
    [connection release];
    [receivedData release];
    
    // inform the user
    UIAlertView *didFailWithErrorMessage = [[UIAlertView alloc] initWithTitle: @"NSURLConnection " message: @"didFailWithError"  delegate: self cancelButtonTitle: @"Ok" otherButtonTitles: nil];
    [didFailWithErrorMessage show];
    [didFailWithErrorMessage release];
	
    //inform the user
    NSLog(@"Connection failed! Error - %@", [error localizedDescription]);
    
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    // Hide Progress
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    [loading dismissWithClickedButtonIndex:0 animated:YES];
    
    // Return Status E.g : { "Status":"1", "Message":"Insert Data Successfully" }
    // 0 = Error
    // 1 = Completed
    
    if(receivedData)
    {
        //NSLog(@"%@",receivedData);
        
        //NSString *dataString = [[NSString alloc] initWithData:receivedData encoding:NSASCIIStringEncoding];
        //NSLog(@"%@",dataString);
        
        id jsonObjects = [NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingMutableContainers error:nil];
        
        // value in key name
        NSString *strStatus = [jsonObjects objectForKey:@"Status"];
        NSString *strMessage = [jsonObjects objectForKey:@"Message"];
        NSLog(@"Status = %@",strStatus);
        NSLog(@"Message = %@",strMessage);
        
        // Completed
        if( [strStatus isEqualToString:@"1"] ){
            UIAlertView *completed =[[UIAlertView alloc]
                                     initWithTitle:@": -) Completed!"
                                     message:strMessage delegate:self
                                     cancelButtonTitle:@"OK" otherButtonTitles: nil];
            [completed show];
        }
        else // Error
        {
            UIAlertView *error =[[UIAlertView alloc]
                                 initWithTitle:@": ( Error!"
                                 message:strMessage delegate:self
                                 cancelButtonTitle:@"OK" otherButtonTitles: nil];
            [error show];
        }
        
    }
    
    // release the connection, and the data object
    [connection release];
    [receivedData release];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    [txtName release];
    [txtTel release];
    [super dealloc];
}

@end


Screenshot

iOS/iPhone Add Insert Data to Web Server (URL,Website)

แสดงหน้าแรกของ App

iOS/iPhone Add Insert Data to Web Server (URL,Website)

ทดสอบกรอกข้อมูล

iOS/iPhone Add Insert Data to Web Server (URL,Website)

เมื่อคลิกที่ Save โปรแกรมจะทำการส่งข้อมูลไปยัง Web Server โดยจะแสดงสถานะ Progress ว่ากำลังทำงาน

iOS/iPhone Add Insert Data to Web Server (URL,Website)

เมื่อ Insert เรียบร้อย



iOS/iPhone Add Insert Data to Web Server (URL,Website)

กรณีที่ Insert ไม่สมบูรณ์ หรือ Error ก็จะแจ้งให้ทราบ เช่นเดียวกัน

iOS/iPhone Add Insert Data to Web Server (URL,Website)

และเมื่อกลับไปดูที่ MySQL Database ที่อยู่บน Web Server ก็จะปรากฏ Record ที่ถูก Insert เข้ามา 1 รายการ

   
Share


ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท


ลองใช้ค้นหาข้อมูล


   


Bookmark.   
       
  By : ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ)
  Score Rating :  
  Create/Update Date : 2012-12-13 12:27:17 / 2017-03-26 08:55:52
  Download : Download  iOS/iPhone Add Insert Data to Web Server (URL,Website, PHP and MySQL)
 Sponsored Links / Related

 
iOS/iPhone PHP/MySQL and JSON Parsing (Objective-C)
Rating :

 
iOS/iPhone NSURLConnection and PHP MySQL / JSON (TableView,UITableView)
Rating :

 
iOS/iPhone Retrieve Read List Show Data from Web Server (URL,Website,PHP,MySQL)
Rating :


ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


Hit Link
   







Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่