Php 突出显示MySQL数据结果

Php 突出显示MySQL数据结果,php,mysql,compare,Php,Mysql,Compare,我很难解释这一点。。因此,请随时询问更多信息 我正在使用以下命令从MySQL数据库读取数据: SELECT * FROM resource where date > DATE_SUB(now(), INTERVAL 12 MONTH) ORDER BY `date` DESC 这将产生如下结果: ID DATE STACK REF NAME LOCATION CREW 9 2016-01-01 06:34:50 A6YH75F

我很难解释这一点。。因此,请随时询问更多信息

我正在使用以下命令从MySQL数据库读取数据:

SELECT * FROM resource where date > DATE_SUB(now(), INTERVAL 12 MONTH) ORDER BY `date` DESC
这将产生如下结果:

ID  DATE                STACK   REF NAME        LOCATION    CREW
9   2016-01-01 06:34:50 A6YH75F 12  Local List  SPAIN       1A
8   2016-01-01 06:34:48 QWE343  23  POINT ONE   GERMANY     3A
7   2016-01-01 06:34:46 WER342  43  Insite      UK          4A
6   2016-01-01 06:34:44 WFF5G1  34  LANWise     FRANCE      5A
5   2016-01-01 06:34:42 2D3D35  21  Polent      USA         7A
4   2016-01-01 06:34:40 8541FW  33  Rosta       UK          4B
3   2015-12-30 16:48:23 A6YH75F 12  Local List  SPAIN       2A
2   2015-11-21 14:32:01 FFCWF4  34  LANWISE     FRANCE      6A
1   2015-10-14 11:02:22 POI8H6  75  BALAND      IRELAND     6B
这就是很难解释的地方

我正在循环浏览结果,并将结果返回到

当这是活的,可能会出现数百个条目,为每个名称,我想做的是突出一些具体的标准为基础的输出

例如:

如果一个名称出现多次,请比较该名称的STACK&REF的最新值和以前的值。(因此,比较每个名称的最后两个条目)

如果它们不同,则突出显示该条目的输出

即:

我可以看到
本地列表
在列表中出现两次。第一个日期戳是
2016-01-01 06:34:50
&然后是
2015-12-30 16:48:23

那很好。在这两种情况下,堆栈和REF都是相同的

然而,
LANWISE
也会出现两次,但在较新的场合,它的堆栈是不同的。如何标记此项并突出显示LANWISE的最新条目

我还想看看在过去的65天里是否有一个条目没有出现

所以看一下上次出现的名单,这已经超过65天了,从那以后就再也没有出现过。我如何强调这一点


谢谢

我不知道这是否是最好的方法,但我会这样做(
$variable
是您查询的结果)

使用
isset($ready[$value['name']])
可以知道该行以前是否存在。使用
==comparator
,您知道它是否是相同的值

使用CSS和类HTML属性突出显示相关行

根据您的使用情况调整此代码,它只是基于您的帖子的一个示例

对于比较日期,可以使用DateTime。使用示例:

$datetime1 = new DateTime($xDateDebut[2].'-'.$xDateDebut[1].'-'.$xDateDebut[0]);
$datetime3 = new DateTime(date('Y').'-'.date('m').'-'.date('d'));
$delaisAvantJourJ = $datetime1->diff($datetime3);
$xDateFirst
是一个分解的SQL日期字段)


$delaisAvantJourJ
现在是一个包含大量有用信息的对象(如日差数)

我不知道这是否是最好的方法,但我会这样做(
$variable
是您查询的结果)

使用
isset($ready[$value['name']])
可以知道该行以前是否存在。使用
==comparator
,您知道它是否是相同的值

使用CSS和类HTML属性突出显示相关行

根据您的使用情况调整此代码,它只是基于您的帖子的一个示例

对于比较日期,可以使用DateTime。使用示例:

$datetime1 = new DateTime($xDateDebut[2].'-'.$xDateDebut[1].'-'.$xDateDebut[0]);
$datetime3 = new DateTime(date('Y').'-'.date('m').'-'.date('d'));
$delaisAvantJourJ = $datetime1->diff($datetime3);
$xDateFirst
是一个分解的SQL日期字段)


$delaisAvantJourJ
现在是一个包含大量有用信息(如日差数)的对象。

您可以使用以下查询返回所需的所有信息,以确定需要突出显示的记录:

选择ID、`DATE`、STACK、REF、NAME、LOCATION、CREW、,
--计算“日期”字段和当前日期之间的差异
DATEDIFF(NOW(),`DATE`)作为DaysDiff,
--获取具有相同名称的较新记录的计数
合并((选择计数(*)
从资源作为r2
其中r2.NAME=r1.NAME和r2.Date`>r1.Date`),0)CountNewer,
--查找是否存在具有相同名称和名称的旧记录
--不同的引用或堆栈或两者
合并((选择1
作为r3来自资源
其中r3.NAME=r1.NAME和
r3.`Date`日期(现在(),间隔12个月)
按“日期”说明订购

您可以使用以下查询返回确定需要突出显示的记录所需的所有信息:

选择ID、`DATE`、STACK、REF、NAME、LOCATION、CREW、,
--计算“日期”字段和当前日期之间的差异
DATEDIFF(NOW(),`DATE`)作为DaysDiff,
--获取具有相同名称的较新记录的计数
合并((选择计数(*)
从资源作为r2
其中r2.NAME=r1.NAME和r2.Date`>r1.Date`),0)CountNewer,
--查找是否存在具有相同名称和名称的旧记录
--不同的引用或堆栈或两者
合并((选择1
作为r3来自资源
其中r3.NAME=r1.NAME和
r3.`Date`日期(现在(),间隔12个月)
按“日期”说明订购

谢谢你看这个。如果输入时间超过65天,我该怎么做?感谢您的关注。如果条目大于65天,我该如何处理?