如何使用count()agregate fn与android,json和php

时间:2016-12-03 13:34:28

标签: php android mysql json

我需要从mysql db中检索行数并在android textview中显示它。

public class MainActivity extends Activity {

TextView textview;
JSONObject json = null;
String str = "";
HttpResponse response;
Context context;
ProgressBar progressbar;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    progressbar = (ProgressBar)findViewById(R.id.progressBar1);
    textview = (TextView)findViewById(R.id.textView1);
    button = (Button)findViewById(R.id.button1);

    progressbar.setVisibility(View.GONE);

    button.setOnClickListener(new View.OnClickListener() {

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

            progressbar.setVisibility(View.VISIBLE);

            new GetTextViewData(context).execute();

        }
    });
}


private class GetTextViewData extends AsyncTask<Void, Void, Void>
{
    public Context context;


    public GetTextViewData(Context context)
    {
        this.context = context;
    }

    @Override
    protected void onPreExecute()
    {
        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... arg0)
    {

        HttpClient myClient = new DefaultHttpClient();
        //HttpPost myConnection = new HttpPost("http://demoblog.16mb.com/send-data.php");
        //HttpPost myConnection = new HttpPost("http://10.0.2.2:443/dash/send-data.php");
        HttpPost myConnection = new HttpPost("http://raysoft.co.in/CRMApp_Query/send_data.php");
        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


        try{
            JSONArray jArray = new JSONArray(str);
            json = jArray.getJSONObject(0);



        } catch ( JSONException e) {
            e.printStackTrace();
        }

        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    protected void onPostExecute(Void result)
    {
        try {
            textview.setText(json.getString("firstname"));

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        //Hiding progress bar after done loading TextView.
        progressbar.setVisibility(View.GONE);

    }
}

}

php代码

     $sql = "SELECT COUNT(*) FROM vtiger_contactdetails"
$result = $conn->query($sql);

if ($result->num_rows > 0) {

    // output data of each row
    while($row[] = $result->fetch_assoc()) {

       $json = json_encode($row);


    }
} else {
    echo "0 results";
}
echo $json;

如何在android中检索计数并在文本框中显示?我需要从php文件发送计数并从android中检索它。这可能吗???

1 个答案:

答案 0 :(得分:3)

更好地使用此代码来解决这个问题, 此代码显示数据库中的表行并打印json:

NotificationCompat.Builder mBuilder =
    new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.notification_icon)
    .setContentTitle("Home Seek ")
    .setContentText("View nearby available listings near you");

Intent resultIntent = new Intent(this, ResultActivity.class);

PendingIntent resultPendingIntent =
    PendingIntent.getActivity(
    this,
    0,
    resultIntent,
    PendingIntent.FLAG_UPDATE_CURRENT
);

PendingIntent resultPendingIntent;
...
mBuilder.setContentIntent(resultPendingIntent);