获取MySQL php

时间:2016-01-12 04:45:08

标签: php android mysql json

我想知道如何获得具有最小ID和 timeOut timeIn ,其最大ID从MySQL php到android?

这是table work_Details(id,project,percentage,timeIn,timeOut,twd)。现在我想检索timeIn : 12:26:00timeOut 11:26:00

enter image description here

  public void RetrieveTotalHours( final String ID)  // Assume ID is 69
    {
        class GetHours extends AsyncTask<Void,Void,String> {
            ProgressDialog loading;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(getActivity(),"Fetching...","Wait...",false,false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                showHours(s);
            }

            @Override
            protected String doInBackground(Void... params) {
                RequestHandler rh = new RequestHandler();
                String s = rh.sendGetRequestParam(Configs.RETRIEVE_HOURS,ID);
                return s;
            }
        }
        GetHours ge = new GetHours();
        ge.execute();

    }
    private void showHours(String json) {
        try {
            JSONArray array=new JSONArray(json);
            JSONObject jsonObject = array.getJSONObject(array.length()-1);
            String MiNtimeIn = jsonObject.optString(Configs.TAG_IN);
            String MaXtimeOut=jsonObject.optString(Configs.TAG_OUT);
            Log.e("A",MiNtimeIn);
            Log.e("S", MaXtimeOut);
            //total.setText(MiNtimeIn);

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

PHP

<?php
  define('HOST','127.0.0.1:3307');
  define('USER','root');
  define('PASS','');
  define('DB','androiddb');

  $con = mysqli_connect(HOST,USER,PASS,DB) or die('unable to connect');

  $twd= $_GET['id'];

 $sql = "select timeIn, timeOut from work_details WHERE twd = '".$twd."' AND id IN
 (SELECT MIN(id) FROM work_details WHERE twd ='".$twd."' UNION SELECT MAX(id) FROM work_details WHERE twd='".$twd."')";


  $res = mysqli_query($con,$sql);

  $result=array();

  while($row=mysqli_fetch_array($res)){
      array_push($result,array('timeIn'=>$row[0],'timeOut'=>$row[1]));
  }

 echo json_encode($result);

mysqli_close($con);

?>

输出错误

01-12 12:43:41.540  22692-22692/com.example.project.myapplication E/A﹕ 20:26:00
01-12 12:43:41.540  22692-22692/com.example.project.myapplication E/S﹕ 11:26:00

它检索具有max id ...的timeIn和timeOut

1 个答案:

答案 0 :(得分:1)

  

检索具有max id ...的timeIn和timeOut

从First JSONObject获取MiNtimeIn并从第二个JSONObject获取MaXtimeOut

String MiNtimeIn,MaXtimeOut;
JSONArray array=new JSONArray(json);
if(array.length()<2){
  JSONObject jsonObject = array.getJSONObject(0);
  MiNtimeIn = jsonObject.optString(Configs.TAG_IN);
  MaXtimeOut=jsonObject.optString(Configs.TAG_OUT);
}else{
  // get First Object from JSONArray
   JSONObject oneObject = array.getJSONObject(0);
  MiNtimeIn = oneObject.optString(Configs.TAG_IN); // get min from first row
  // get Second Object from JSONArray
   JSONObject twoObject = array.getJSONObject(array.length()-1);
   MaXtimeOut = twoObject.optString(Configs.TAG_OUT); // get min from second row
}