、どの私のios5アプリに「id」を送り、その商品の「在庫」を受け取るようにします。JSONの構文解析:(データベース攻撃:MySQLを)PHP5から私は:(一日</p> <p>を(新たなものを)しようとしてきたので、私は、私はデータベースのMySQLを持っている誰かが私を置くに役立つことを願ってiOS5をiphone
私のPHPコードでは、「製品」(2行:「id」と「stock " :
これは私のアプリにJSONを送信すると思われるものの、私のアプリはこのJSONをfunctioで受け取りますnは呼ば:
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSString *responseStringWEB = [request responseString];
NSLog(@"STRING:: %@ \n", responseStringWEB); //3
NSDictionary *responseDict = [responseStringWEB JSONValue];
NSLog(@"DICT: %@ \n", responseDict); //3
NSString *id_producto = [responseDict objectForKey:@"id"];
NSString *stock = [responseDict objectForKey:@"stock"];
NSLog(@"ID: %@\n", id_producto); //3
NSLog(@"stock: %@", stock); //3
}
とコンソールをチェックするには、私が取得:
**`STRING`::**
Connection establishedDatabase selected..
***{"id":"3","stock":"46"}***
Connection closedDesconectado
2011-12-26 18:58:57.170 CaeDeCajon[1998:16403] Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x984aeb0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
2011-12-26 18:58:57.171 CaeDeCajon[1998:16403] **`DICT`**: (null)
2011-12-26 18:58:57.171 CaeDeCajon[1998:16403] **`ID`**: (null)
2011-12-26 18:58:57.171 CaeDeCajon[1998:16403] **`stock`**: (null)
質問です:私は、JSONは(配列に来ているフォーマットするかわからない、私が取得するNSStringのresponseStringWEBを解析する必要がありますどのようにそれらの2つの値(IDとSTOCK)。データベースからそれらを受け取ったようですが、私はそれらを抽出するために手を差し伸べません。
HELPは:)、
EDITING ::
感謝をありがとうございました。本当に助けになりました。
PHPコードで使用した複数のエコーとは何か関係があるようでした。今私はjson形式でデータを送信する1つのエコーを持っています。それは私のデータベースと私のアプリケーションと完全に動作します:私はすべてのアイテムのテーブル全体( "id"と "在庫")を受け取ります。ありがとう。
しかし、私は、製品が販売された後にデータベースを変更する必要があるということを発見しました。通常、PHPで配列を投稿する必要があります。影響を受ける製品/アイテム(array_idとarray_reductor)のidとreductor(インダクタはその "id"のどれだけの製品が販売されたかを表す)をPOSTすることです。
IOS5 CODE:
NSArray *array_id=[[NSArray alloc]initWithObjects:@"0",@"3",@"5", nil];
// ID製品と。
NSArray *array_reductor=[[NSArray alloc]initWithObjects:@"10",@"5",@"40", nil];
//販売されている製品の数(現在の在庫番号を取得するために、これまでのデータベースで以前の在庫数を減らす必要があります)。データは {
来ている場合IF(ISSET($ _ POST [ 'ID'])& & ISSET($ _ POST [ '減速']))//チェック:MY PHPファイルは
NSURL *url=[[NSURL alloc]initWithString:@"http://www.haveyourapp.com/promos/"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:array_id forKey:@"id"];
[request setPostValue:array_reductor forKey:@"reductor"];
[request setDelegate:self];
[request startAsynchronous];
私のコードは動作しません。私のアプリやPHPファイル(おそらく)に問題があるかどうかわかりませんが、どうすればこれらの2つの配列を受け取り、それらを使用できますか?事前
で
おかげで私は、スタックオーバーフローの上に多くの時間を費やす:VERY USEFULLLLLLLL !!!!!
Joerick、私はあなたの権利を考えます。 PHPは正常に動作します。問題は今、アプリケーションからPHPで配列を受け取ることです。何かアドバイス? – Roberto