0

私はPHPを初めて使用し、PHPWebレイヤーを使用してAndroidからMySQLにデータを送受信する方法を研究しています。以前に、Java文字列配列を作成するためのコードを準備しました。この配列emailAddresses[]phoneNumbers[]は、電話の連絡先のすべての電子メールアドレスと電話番号がそれぞれ含まれています。

これらの各値を、データを電話番号/電子メールアドレス/その他の項目としてそれぞれ識別し、データを含むフィールドDATA_TYPEおよびDATA_CONTENTを含むMySQLテーブルDATAに対してチェックしたいと思います。配列をPHPにロードしてから、それぞれの値をループして、クエリがレコードを返すかどうかを確認するのが最善だと思います。もしそうなら、その電話番号/メールアドレスを持つユーザーに関連付けられたDATA内の他のすべてのデータをAndroid用のJSON応答に組み込み、後でデータを独自のSQLiteDBにコピーするために使用します。

ただし、ここでPHPの入力と出力を処理するのに最適な方法がわかりません。私が見るほとんどの例は、HTTPPOSTを使用してエンティティとしてNameValuePairsを設定することを含みますが、これらの例は、ログインなど、単一のレコードからデータを識別またはコピーするためのパラメーターとしてのみこれらを使用しているようですが、同じデータを大量に渡したい多くのレコードを識別するためのタイプ(電子メール/電話)。キーを「email[1]」、「someone@somewhere.com」、「email [2]」、「another@s​​omewhere.com」と指定した場合かもしれないと思いましたが、PHPは初めてなので、そうではありませんでした。特に100ほどのアドレスで、それがどれほど効率的かはわかりません。私の新しいフローレのいくつかのガイダンスに感謝します、ありがとう。

4

1 に答える 1

1

まず第一に、多くのデータを渡す必要がある場合、形式に関係なく遅くなります。どの程度「遅すぎる」かは、特定のアプリケーションとその要件によって異なります。UI の応答性を維持するには、すべての HTTP 通信を 1AsyncTaskつまたは別の非 UI スレッドで行う必要があります。進行状況ダイアログを表示することは、不確定であっても、何かが進行中であることをユーザーに示す良い方法です。

さて、具体的な質問です。チェックする文字列の JSON 配列を作成することをお勧めします。これにより、基本的に、すべてのデータを含む 1 つの String が得られます。この文字列を任意の名前の の値として設定し、NameValuePairこの NameValuePair を HTTP Post エンティティとしてサーバーに渡します。次に、PHP で次のように簡単に実行できます。 -変数$valuesToCheck = json_decode($_POST['name'])に配列が含まれます。$valuesToCheck

これで、PHP で必要なことは何でも実行して、PHP でデータを取得できます。たとえば、配列の配列で終わることができます。たとえば、$dataToSend各要素が呼び出しの結果である配列になるmysql_fetch_assocか、またはその他の方法で配列になります。 . このデータを取得したら、PHP で次のようにします。

header("Content-type: text/json");
echo json_encode($dataToSend);

これにより、すべてのデータが呼び出しコード (この場合は Android) に送り返されます。最後に、Android で応答を取得し、JSON でデコードします。空の配列が返された場合、データベースには一致がありませんでした。配列が空でない場合は、データを取得して、必要なことをすべて行います。

たくさんのブログ/チュートリアル/などがあります。Android での JSON のエンコード/デコードに関する Web で。たとえば、これを参照できます。

于 2012-07-19T07:47:22.943 に答える