[英]Get min ID and max ID value in MySQL php
I wonder how to get the timeIn which has the min id and timeOut which has the max id from MySQL
php to android ? 我想知道如何从MySQL
php到android获取具有最小id的timeIn和具有最大id的timeOut吗?
This is table work_Details(id,project,percentage,timeIn,timeOut,twd). 这是表work_Details(id,project,percentage,timeIn,timeOut,twd)。 Now I want to retrieve the timeIn : 12:26:00
and timeOut 11:26:00
现在我想检索timeIn : 12:26:00
and timeOut 11:26:00
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
<?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);
?>
Wrong Output 输出错误
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
It retrieves the timeIn and timeOut which has the max id... 它检索具有最大id的timeIn和timeOut ...
retrieves the timeIn and timeOut which has the max id... 检索具有最大id的timeIn和timeOut ...
Do it as to get MiNtimeIn
from First JSONObject and MaXtimeOut
from second JSONObject: 这样做才能得到MiNtimeIn
从第一的JSONObject和MaXtimeOut
从第二的JSONObject:
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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.