3

私のAndroidでは:

    String cat_id = getIntent().getExtras().getString("category_id");

    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("cat_id", cat_id));

    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(
                "http://www.---.com/items.php");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection" + e.toString());
    }

私のPHPでは:

// editing out DB connections which have been verified to work


 <?php
$sql=mysql_query("SELECT * FROM items WHERE cat_id = '".$_REQUEST['cat_id']."'");
while($row=mysql_fetch_assoc($sql))
    $output[]=$row;
print(json_encode($output));
mysql_close();
 ?>

したがって、私の問題は、何も返さないことです(JSON結果部分で-トーストには「アイテムが見つかりません」と表示されます)。Android から PHP にパラメータを渡す方法は正しいですか?

4

3 に答える 3

0

私は何が何であるかを理解し、答えなかったのは誰のせいでもありませんでした.

この問題は、 Java が PHP に引き継がれる前に始まりました。問題の Java アクティビティに渡されたのはバンドルでした。不適切なプリミティブを使用するという単純なミスがあり、その結果、null がバンドルを介して渡されました。

null はパスをたどり、PHP 部分に到達しました。したがって、上記のコードは実際には正しいです。

于 2012-06-19T15:32:06.443 に答える
0

この行はいけませんか

$sql=mysql_query("SELECT * FROM items WHERE cat_id = '".$_REQUEST['cat_id']."'");

なれ

$sql=mysql_query("SELECT * FROM items WHERE cat_id = '".$_POST['cat_id']."'");

つまり、$_REQUEST から $_POST へ?

Firefox 用の Firebug プラグインを使用して、サーバーに送信された正確な形式の投稿を追跡することをお勧めします。

于 2012-06-18T22:44:18.800 に答える