PHP如何取查询结果中的最大值并赋予style

时间:2022-05-29 15:11:11
现从数据库X表中取出a,b,time三个字段的值。
如果查询结果中a的值为小明的话,则背景色为#96,字体颜色为白色。
现需要再加一个条件,如果time(类型为datetime)为距离现在最近的时间,则该行所有字段的字体变为红色。
请问如何设置$time_style。
同时满足以上两个条件。
以下代码为满足第一个条件的:

$sql = "select a,b,time from X"; 
$rst = mysql_query($sql); 
while($row=mysql_fetch_assoc($rst)){ 
$vip_style = $row['a']=="小明" ? ' style=" background-color:#096;color:white;"' : '';
echo "<tr><td $vip_style>{$row['a']}</td><td $vip_style>{$row['b']}</td><td $vip_style>{$row['time']}</td></tr>";}

6 个解决方案

#1


你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 

#2


必须先计算出时间差,然后才能知道谁最小
你想一遍循环就完成,是做不到的

#3


引用 1 楼 u010007095 的回复:
你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 


怎么取?

#4


引用 2 楼 xuzuning 的回复:
必须先计算出时间差,然后才能知道谁最小
你想一遍循环就完成,是做不到的


或者说我如何取出最大的time值那一行的所有字段进行style设置?

#5


引用 3 楼 jaredlong 的回复:
Quote: 引用 1 楼 u010007095 的回复:

你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 


怎么取?

$row=mysql_fetch_row[$sql];

#6


引用 5 楼 u010007095 的回复:
Quote: 引用 3 楼 jaredlong 的回复:

Quote: 引用 1 楼 u010007095 的回复:

你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 


怎么取?

$row=mysql_fetch_row[$sql];


引用 5 楼 u010007095 的回复:
Quote: 引用 3 楼 jaredlong 的回复:

Quote: 引用 1 楼 u010007095 的回复:

你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 


怎么取?

$row=mysql_fetch_row[$sql];

不好意思 应该是
$result=mysql_query($sql);
$row=mysql_fetch_row[$result];

#1


你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 

#2


必须先计算出时间差,然后才能知道谁最小
你想一遍循环就完成,是做不到的

#3


引用 1 楼 u010007095 的回复:
你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 


怎么取?

#4


引用 2 楼 xuzuning 的回复:
必须先计算出时间差,然后才能知道谁最小
你想一遍循环就完成,是做不到的


或者说我如何取出最大的time值那一行的所有字段进行style设置?

#5


引用 3 楼 jaredlong 的回复:
Quote: 引用 1 楼 u010007095 的回复:

你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 


怎么取?

$row=mysql_fetch_row[$sql];

#6


引用 5 楼 u010007095 的回复:
Quote: 引用 3 楼 jaredlong 的回复:

Quote: 引用 1 楼 u010007095 的回复:

你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 


怎么取?

$row=mysql_fetch_row[$sql];


引用 5 楼 u010007095 的回复:
Quote: 引用 3 楼 jaredlong 的回复:

Quote: 引用 1 楼 u010007095 的回复:

你可以 $sql = "select a,b,time from X order by time desc;
取第一条 数据 ;如果这条数据满足a==小明 ,就变红 。这样不就满足两个条件了 


怎么取?

$row=mysql_fetch_row[$sql];

不好意思 应该是
$result=mysql_query($sql);
$row=mysql_fetch_row[$result];