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) );
?>

但是数据没有显示在模拟器中,它只显示在日志猫中作为信息。

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 回答