2011-07-05 9 views

答えて

9

あなたのアプリは実際のクエリを実行しません。これを行う適切な方法は、あなたのウェブサイト用のAPIを設定して、サイトがクエリを実行し、適切なデータをアプリに返すようにすることです。

あなたのAPIは一般に、あなたのアプリケーション用にフォーマットされたデータを返す多くのエンドポイントで構成されます。たとえば、特定のユーザーのすべての投稿をデータベースに照会し、JSONまたはXMLエンコードされた配列で返すPHPまたはPythonページを作成することができます。

たとえば、サーバー上に現在の曜日を返すPHPページがあるとします。たとえば、次のように入力します。

<?php 
    echo date("l"); 
?> 

のは、あなたが私はあなたのアプリ内からのHTTPリクエストを実行するためのASIHTTPRequestフレームワークを使用することをお勧めしhttp://example.com/dayoftheweek.php

としてこれを保存していることを想像してみましょう:あなたのPHPには、次のようになります。それでは、PHPページへの接続を設定しましょう。あなたがASIHTTPRequestすべてのプロジェクトに設定したと仮定すると、ここでの要求がどのように見えるかです:

NSURL *url = [NSURL URLWithString:@"http://example.com/dayoftheweek.php"] 
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url]; 
[request setDelegate:self]; 

さて、あなたは、ASIHTTPRequestデリゲートメソッドを実装して返されたデータを解析する必要があります。完了したリクエストを処理するメソッドは次のとおりです。

- (void)requestFinished:(ASIHTTPRequest *)request{ 
    //Here you would store the returned data and/or parse it 
} 

APIを実装するには、PHPページがより複雑になります。より複雑なリクエストを作成し、変数などを渡すと、PHPページは通常のWebサービスのように動作し、リクエストしたデータを返します。

+0

しかし、どのようなタイプのHTTP要求ですか?どのようにAPIを作成すればいいですか?それはPHPですか?これを行う方法の例は何ですか? – StanLe

+0

彼は本当に重複した答えが必要ではないと思います。 – pt2ph8

+0

@StanLe - 私は基本的な例で更新しました。 @ pt2ph8 - 私もそうは思わない。それが私の答えを更新した理由だ。 ;-) – Moshe

0

私はあなたがMySQLを意味すると思います。通常、MySQLデータベースへのアクセスは正当な理由で外部から禁じられています。代わりにあなたのデータベースにアクセスするAPIを書くことができます。あなたのiPhoneアプリは、このAPIと通信してデータを挿入して取得します。

+0

どのようなAPIですか?私はいくつかのPHPスクリプトや何かのようにしますか? – StanLe

+0

うん。あなたが渡すパラメータに基づいてJSONまたはXMLフォーマットのデータを返すPHPスクリプトが、最も簡単な方法です。次に、ASIHTTPRequestに加えて、JSON用のYAJLとXML用のGDataをお勧めします。 – pt2ph8

+0

Webサービスを使用できます。サーバーデータベースからユーザーのIDを取得したいとします。これを実現するには、WebサービスAPI - (NSNumber *)IDForUserWithName:(NSString *)usernameがあります。この呼び出しは、データベースから渡されたユーザー名のIDを内部的に取得するサーバーに送られます。 – Subhash

0

@StanLe:ネイティブアプリ内でSQL ServerまたはmySQLを直接使用することはできません。ただし、次の方法で外部SQLデータベースとアプリケーションを通信できます。

  1. PHPを使用してXML APIを作成するか、C#または結果としてXMLファイルを提供するツールを使用します。
  2. xcodeの一部のパーサー(NSXMLParser)を使用して、XMLページのタグを読み取ることができます。ここで

ここexample

で混乱が戻って書いてくださいまだ場合sample Code

別の非常にSimple Example

です。

+0

私は少しPHPに精通しており、以前はPHPでSQLクエリを作成しています。私にとって懸念しているのは、クエリの結果を(コンピュータの画面に)コンソールに出力したことだけです。これらの結果をまとめてObjective-Cでどのように読むことができますか? – StanLe

+0

あなたはどのデータベースやプラットフォームを使用しているのか、ネイティブアプリでどのような結果を見たいのかといった詳細を教えていただけますか? – Xorsat

+0

Excelentリンク。私が立ち往生している唯一のことは、objective-cからwww.mysite.com/myfile.phpなどの私のサーバ上でPHPファイルを実行し、結果を戻す方法です。データベースを照会するために使用される特定の入力(名前など)を使用してPHPファイルを実行できるようにします。それから、PHPはMySQLデータベースから行を返します。その後、私のObjective-Cはその結果を得るでしょう。 – StanLe

0

外部データベースとの通信に使用されるアプローチは、Webサービス(ここではAPIと呼んでいます)を介して行われます。通常はサーバー上の関数呼び出しであるサーバーへの要求を行い、サーバーは要求されたデータでユーザーに応答します。

あなたはThisを経由することができます。PHPと他の関連用語が関係している限り、あなたはいくつかの努力といくつかのコードをgoogleする必要があります。 Thisもいくつか使用できます。通常、iPhone用に作成されたwebservicesはiPhone用のXML/JSONを使用します。 JSON/XMLパーサーが利用可能です

関連する問題