从MySQL php中的特定列获取最大ID和最小ID

2024-05-06

我是新来的php现在尝试从中检索数据MySQL到安卓。

这是我的工作细节 table

In 检索总小时数函数,我想检索最短 ID 时间 and 最大 ID 超时 from MySQL到安卓通过php最后使用下面的代码来获取总小时数。

假设 ID 是 3 ,所以我想得到timeIn where id=3, timeOut where id=25。这是我到目前为止所尝试过的。

  public void RetrieveTotalHours( final String ID) // ID(twd)=3
    {
        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 {
            JSONObject jsonObject = new JSONObject(json);
            JSONArray result = jsonObject.getJSONArray(Configs.TAG_JSON_ARRAY);
            JSONObject c = result.getJSONObject(0);
            String MiNtimeIn = c.getString(Configs.TAG_IN); 
            String MaXtimeOut=c.getString(Configs.TAG_OUT);

            long difference = 0;
            if (MiNtimeIn > MaXtimeOut) {
            difference = (MaXtimeOut + (24 * 60) - MiNtimeIn) - (1 * 60);
            minutes = (int) (difference % 60);
            hours = (int) ((difference / 60) % (24 * 60));
            totalHours.setText(("Total hours : " + hours + ":" + minutes));

           } else {
            // .....
          }

            total.setText(hours);

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

Retrieve_hours.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('id'=>$row[0],'timeIn'=>$row[1],'timeOut'=>$row[2]));
  }

 echo json_encode($res);

mysqli_close($con);

?>

Configs

    public static final String TAG_IN="timeIn";
    public static final String TAG_OUT="timeOut";

Error

01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at org.json.JSON.typeMismatch(JSON.java:111)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:159)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:172)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at com.example.project.myapplication.GUI.Edit_WorkDetails.showHours(Edit_WorkDetails.java:248)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at com.example.project.myapplication.GUI.Edit_WorkDetails.access$000(Edit_WorkDetails.java:46)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at com.example.project.myapplication.GUI.Edit_WorkDetails$1GetHours.onPostExecute(Edit_WorkDetails.java:232)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at com.example.project.myapplication.GUI.Edit_WorkDetails$1GetHours.onPostExecute(Edit_WorkDetails.java:220)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at android.os.AsyncTask.finish(AsyncTask.java:632)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at android.os.AsyncTask.access$600(AsyncTask.java:177)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:102)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at android.os.Looper.loop(Looper.java:146)
01-10 19:31:47.355    1298-1298/com.example.project.myapplication W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5602)
01-10 19:31:47.360    1298-1298/com.example.project.myapplication W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
01-10 19:31:47.360    1298-1298/com.example.project.myapplication W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:515)
01-10 19:31:47.360    1298-1298/com.example.project.myapplication W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
01-10 19:31:47.360    1298-1298/com.example.project.myapplication W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
01-10 19:31:47.360    1298-1298/com.example.project.myapplication W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)
01-10 19:31:47.380    1298-1298/com.example.project.myapplication D/AbsListView﹕ Get MotionRecognitionManager

Edited

 String MiNtimeIn = c.getString(Configs.TAG_IN); 
 String MaXtimeOut=c.getString(Configs.TAG_OUT);

假设 ID(twd) 是 8,我应该在 timeIn 中得到 21:52,在 timeOut 中得到 1:52。 MiNtimeIn 应显示 21:52(id 3),MaXtimeOut 应显示 1:52(id 4)


替换此部分:

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

with:

echo json_encode($res);

您创建了很多数组,当您在 while 循环中进行推送时,您将数组推送到 $result 数组中,然后当您 echo 时,您将所有结果放入另一个数组中。这更复杂。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从MySQL php中的特定列获取最大ID和最小ID 的相关文章

随机推荐

  • 带 Retrofit 的简单登录表单

    我开始使用 Retrofit 但我坚持这个简单的步骤 我有一个登录表单 我正在尝试通过服务器进行身份验证 但我无法发送请求 这是我尝试过的 我的改造客户 private static OkHttpClient Builder httpCli
  • DOM 操作在 Angular 2 中属于什么位置?

    在 Angular 1 中 所有 DOM 操作都应该在指令中完成 以确保适当的可测试性 但是 Angular 2 呢 这是如何改变的 我一直在寻找关于在哪里进行 DOM 操作以及在执行操作时如何思考的好文章或任何信息 但每次都一无所获 以此
  • 我正在使用 SQL 设计公交车时刻表。每条巴士路线都有多个站点,我是否需要为每条路线准备不同的表?

    我正在尝试提出尽可能最有效的数据库 我的巴士路线大约有 10 个站点 巴士从一号站出发 直到到达第十站 然后再返回 这个循环每天发生3次 我真的很困惑如何有效地生成公交车的时间以及应该在哪里存储站点 如果我将所有停靠点放在一个字段中 将时间
  • 如何确定输入的模式是“Int,VarChar,Date,Time ...”等

    我有一个下拉菜单 其中包含DataType 和一个文本框 这是用于输入的Regex Pattern 如果我进入 test 在文本框中 或从下拉菜单中选择Int 如果在文本框中输入 则其模式是错误的 0 9 那么它的correct patte
  • 元视口标签似乎被完全忽略或没有效果

    我把这个标签放在了头部一个网页 http www belovedobjects de 由于某种原因 它在我的 iPhone 上似乎被忽略了 甚至添加了user scalable no没有影响 我尝试了许多宽度 初始比例等值 似乎没有任何效果
  • 当有效的 django 表单保存在数据库中时如何触发自定义 python 代码

    Django 新手 我创建了一个简单的表单如下this https www youtube com watch v 3XOS UpJirU教程 我的表单正确地将数据保存在我的 Postgres 连接的本地数据库中 我想知道 每当将有效表单保
  • 如何使用 ASP.Net Core Identity 从登录用户检索 Google 个人资料图片?

    好的 我目前正在使用 ASP NET Core 1 1 2 和 ASP NET Core Identity 1 1 2 其中重要的部分是启动 cs看起来像这样 public void Configure IApplicationBuilde
  • R - 过滤器坐标

    我是 R 新手 我有一个简单的问题 据我看来 但到目前为止我还没有找到解决方案 我有一组 长 2D x y 坐标 只是 2D 空间中的点 如下所示 ID x y 1 1758 56 1179 26 2 775 67 1197 14 3 29
  • ASP.NET Core 3:如何在自定义库中引用 3.0.0 程序集?

    我看到引用的应用程序Microsoft AspNetCore App框架 又称为 ASP NET Core 3 0 使用程序集中的类型Microsoft AspNetCore Mvc Abstractions Version 3 0 0 0
  • 使用正整数参数优化

    我需要解决一个需要比较具有相同列数的两个矩阵的问题 其中之一被操纵 直到获得最佳匹配 我对两个矩阵之间的差异进行评分的方式非常复杂 我仍然需要最终确定它 目前我真正感兴趣的是找到一种仅适用于正整数的搜索 优化算法 我创建了一个简单的示例 其
  • PostgreSQL 计数查询、物化视图的效率[重复]

    这个问题在这里已经有答案了 可能的重复 PostgreSQL 计数查询优化 https stackoverflow com questions 13075210 optimization of count query for postgre
  • MapKit 是否支持街景?

    我可以在我的应用程序中使用 Google 地图街景吗 No 填充字符以克服有问题的最小值
  • 复制文件而不冻结 GUI

    好的 基本上这就是我想做的 我的文件列表中有一个文件列表应用程序包 例如在文件夹中myData 请注意 子文件夹 等中有很多文件 文件夹 我想要复制整个文件树到用户磁盘上的给定位置 我需要有访问每个单独的文件被复制 因为其中一些在复制之前需
  • Excel JS - 获取范围数字格式

    我正在 React 中使用 Excel Office JS API 数据被推送到 Excel 范围 我正在尝试执行以下逻辑 检查范围 单元格格式是否为常规 如果是通用格式 则将格式设置为特定的日期时间格式 如果不是通用格式 请勿更改格式 看
  • 如何与开发团队成员一起在我的设备上测试 iPhone 应用程序?

    我是一名 iOS 初学者 我收到团队成员的邀请 所以我接受了邀请 现在我正在尝试在我的设备上测试 iPhone 应用程序 但我在 Xcode 帐户中看不到团队帐户 只有我的免费开发者帐户 个人团队 如果我与团队帐户成员一起测试该怎么办 No
  • 测量字符串的像素宽度

    我需要在 Cocoa Touch 中测量字符串的像素宽度 谁能给我指出一个解释如何执行此操作的链接 在 iPhone 操作系统上略有不同 请查看NSString UIKit 添加参考 http developer apple com iph
  • 打开 Chrome 扩展程序时出现 Service Worker TypeError

    当我打开 WAVE Web 可访问性评估工具 扩展时 我的服务工作人员在 Chrome 中抛出此错误 未捕获 承诺中 类型错误 请求方案 chrome extension 是 不支持的 在 sw js 52 匿名 sw js 52 Prom
  • 条件表达式在包内是否被破坏?

    考虑以下片段 requires designide rtl vcl IF RTLVersion lt 19 0 E2026 Constant expression expected IF CompilerVersion 22 0 same
  • Berkeley DB 文件分割

    我们的应用程序使用 berkeley db 进行临时存储和持久性 一个新的问题出现了 来自各种输入源的大量数据 现在底层文件系统不支持这么大的文件大小 有没有办法将 berkeley DB 文件拆分为逻辑文件段或分区而不丢失其中的数据 我还
  • 从MySQL php中的特定列获取最大ID和最小ID

    我是新来的php现在尝试从中检索数据MySQL到安卓 这是我的工作细节 table In 检索总小时数函数 我想检索最短 ID 时间 and 最大 ID 超时 from MySQL到安卓通过php最后使用下面的代码来获取总小时数 假设 ID