0

名前と値のペアを使用して、 String (itemname)の配列をphpファイル(PlaceOrder.php)に渡したい。PlaceOrder をクリックすると、データベースにnullbuttonが渡されます。AndroidコードまたはPhpコードに問題はありますか?私のAndroidコードは次のとおりです

public void onClick(View v) {
        // TODO Auto-generated method stub
        try
        {

            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://10.0.2.2/demo/PlaceOrder.php");
              Log.e("log_tag", "connection success ");
              List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            for (int i=0;i<1;i++)
            {
                nameValuePairs.add(new BasicNameValuePair("ItemName[]", String.valueOf

(resultArrItemname[i])));

            }
            Log.e("log_tag", "Name value pair success ");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            Log.e("log_tag", "response sucess ");
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
             showDialog("Order Placed Successfully");

        }

        catch(Exception e)
        {
            Log.e("log_tag", "Error in http connection"+e.toString());
        }
    }

そして私のPHPコードは次のとおりです

<?php

        $itemname[]=$_REQUEST['ItemName[]'];   

        mysql_connect("localhost","root","aaaaaa") or die(mysql_error());
        mysql_select_db("demo") or die(mysql_error());          

        foreach($itemname as $key)
        {
            $sql=mysql_query("Insert into tblorder(itemname) values('$key')");
            while($row=mysql_fetch_array($sql)) 
        $output[]=$row;
             print(json_encode($output));
        }
         mysql_close();
?>
4

3 に答える 3

1

変更してみてください

$itemname[]=$_REQUEST['ItemName[]']; 

$itemname[]=$_REQUEST['ItemName']; 
于 2013-02-19T06:49:04.457 に答える
0

変化する$itemname[]=$_REQUEST['ItemName[]'];

$itemname=$_REQUEST['ItemName']; 

[]両側から取り外します

以下のようなクエリを使用します。

$sql=mysql_query("Insert into tblorder(itemname) values('".mysql_real_escape_string($key)."')");

mysql_* 関数は非推奨です。mysqli_* と PDO を使用してください

変化 :

while($row=mysql_fetch_array($sql)) 
$output[]=$row;

に :

while($row=mysql_fetch_array($sql)) {
   $output[]=$row;
}

$output = array();foreach ループのすぐ上で宣言する

print(json_encode($output));foreachループの後にする必要があると思います

于 2013-02-19T06:52:48.913 に答える
0

$itemname[]=$_REQUEST['ItemName[]'];

より良い使用方法ではありません.POSTまたはPUTまたは他の入力タイプを試してください.リクエストは将来の開発で有害になる可能性があります...

試してみてください ---- $itemname[]=$_POST['ItemName'];

于 2013-02-19T06:58:16.593 に答える