Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示每辆自行车的最长距离,如果超过100,则显示绿色图标_Php_Mysql_Sql_Join - Fatal编程技术网

Php 显示每辆自行车的最长距离,如果超过100,则显示绿色图标

Php 显示每辆自行车的最长距离,如果超过100,则显示绿色图标,php,mysql,sql,join,Php,Mysql,Sql,Join,我问了一个更简单的问题,然后意识到我的问题过于简单了 我问了一个新问题,因为我原来的问题提供了解决方案,但我问错了问题 以下是jist: 我有一个愚蠢的目标,今年每骑一辆自行车就骑一个世纪 我想创建一个状态仪表板,每个自行车都有一个图标,表示已经完成,绿色表示是,红色表示否 此外,如果是,我希望填充骑乘日期和骑乘里程 第二个条件很容易做到,我的SQL查询是: SELECT r.bike_name, r.ride_date, r.ride_miles FROM rides r JOIN bikes

我问了一个更简单的问题,然后意识到我的问题过于简单了

我问了一个新问题,因为我原来的问题提供了解决方案,但我问错了问题

以下是jist:

我有一个愚蠢的目标,今年每骑一辆自行车就骑一个世纪

我想创建一个状态仪表板,每个自行车都有一个图标,表示已经完成,绿色表示是,红色表示否

此外,如果是,我希望填充骑乘日期和骑乘里程

第二个条件很容易做到,我的SQL查询是:

SELECT
r.bike_name,
r.ride_date,
r.ride_miles
FROM rides r
JOIN bikes b
  on r.bike_name=b.bike_name
WHERE DATE_FORMAT(r.ride_date, '%Y')='$current_year' and r.ride_user = '$athlete' and b.bike_retired = 'No' AND ride_miles > 100
我尝试了另一个问题的连接,并将where子句添加到连接中。如果我是表中唯一的使用者,并且我不必检查自行车是否报废,那么它们工作得很好。一旦我添加了这些部分,它就变得一团糟,我又一次迷路了


一旦我可以得到正确的数据回来,我可以使用PHP按摩它。我一直在想我需要一个订购人。

使用
IF
根据是否满足阈值返回不同的颜色

SELECT r.bike_name, r.ride_date, r.ride_miles,
       IF(r.ride_miles > 100, 'green', 'red') AS color
FROM rides AS r
JOIN bikes AS b ON r.bike_name = b.bike_name
WHERE YEAR(r.ride_date) = $current_year
  AND r.ride_user = '$athlete'
  AND b.bike_retired = 'No'

太酷了,我不知道你能做到。数据可能是可排序的,但我希望更多(同样是我糟糕的解释),以每辆自行车上最长的英里数回来,然后我可以更容易地整理数据。我认为数据都在那里,但这是一个完整的表扫描。你的问题没有明确说明有多行,你需要找到最大的一行。请看,你应该发布你的模式、样本数据和你试图实现的结果,这将使事情更清楚。sqlfiddle也很有用。