0

こんにちは、mysql データを使用する Android アプリを作成しました。私はphpを使ってmysqlデータに接続しています。

私はajaxを使用して値をphpファイルに送信しています。私の質問は、データベースから取得したデータを送り返すためのphpコードは何ですか? php ファイルに記述する必要があるコードの構文と構造。

これが私がやっていることです。

 private void executeAjaxRequest(){
        if(mListAdapter != null){
            mListAdapter.clear();
        }
        mClient = myPrefs.getString("client", "all");
        String url = mDataUrl+"?client="+mClient+"&request="+mRequest+"&location="+mLocation;       
        Log.v("url",url); 


        AsyncHttpClient httpclient = new AsyncHttpClient();
        httpclient.get(url, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(String response) {
                setOutletData(response);
                Log.i("TAG",response);
            }
        });
    }

これは私が結果を取り戻しているところです。

private void setOutletData(String response){        
        /** Creating array adapter to set data in ListView using AJAX Data*/

        try{            
          ArrayList<StoreDetails> store_details_list = new ArrayList<StoreDetails>();
          Log.v("response",response);
          mStoreDetailsList = Utils.ToArrayList(new JSONArray(response));
          Log.v("store_list",mStoreDetailsList.toString());

          Iterator<String> i = mStoreDetailsList.iterator();          
          String json_store = "";

          //Loop the list
          while( i.hasNext() ){
            json_store = i.next();
            JSONObject store = new JSONObject( json_store );

            JSONArray the_json_array = store.getJSONArray("1");

            System.out.println(the_json_array);
            String row = "";



           // use Json array to normal array covertion..



            //Create a StoreDetails object and add it to the ArrayList Of StoreDetails
            store_details_list.add( new StoreDetails( store ) );            
          }     
          //Set the data adapter for the List

          StoreListItemAdapter sla = new StoreListItemAdapter( getActivity() , R.layout.storelist_item , store_details_list );
          sla.notifyDataSetChanged();
          setListAdapter(sla  );
        }
        catch(JSONException e){
          e.printStackTrace();
        }

これは私のphpコードです。

<?php
error_reporting(0);

//$url = $_GET['url'];
//$mR = $_GET['mRequest'];
//$mOid = $_GET['mOutletId'];
//$mloc = $_GET['mLocation'];
//connect to the db
$user = "root";
$pswd = "";
$db = "recommendations_db";
$host = "localhost";
$conn = mysql_connect($host, $user, $pswd);
mysql_select_db($db);
//if($mR == 'outlets' && $mloc = 'all'){
$query = "SELECT * FROM outlets";
$result = mysql_query($query) or die("Unable to verify user because : " . mysql_error());

while($row = mysql_fetch_array($result))
  {
  $output[] = $row; 
  }
print( json_encode($output) );
?>

ただし、データはエミュレーターに表示されず、ログ cat に情報としてのみ表示されます。

4

1 に答える 1

0

php側で以下を試してみてください。名前付きの json オブジェクト (json_obj) を返します。これで問題が解決する場合があります。

$rows = array();
while($row = mysql_fetch_assoc($result)){
    $rows[] = $row;
}
echo "{\"json_obj\":";   
echo json_encode($rows);
echo "}";
于 2013-02-20T15:42:20.133 に答える