Php 突出显示MySQL数据结果
我很难解释这一点。。因此,请随时询问更多信息 我正在使用以下命令从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
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天,我该如何处理?