Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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 先导和下一个先导之间的时差以及上一个先导和下一个先导之间的差异_Php_Mysql_Mysqli - Fatal编程技术网

Php 先导和下一个先导之间的时差以及上一个先导和下一个先导之间的差异

Php 先导和下一个先导之间的时差以及上一个先导和下一个先导之间的差异,php,mysql,mysqli,Php,Mysql,Mysqli,有一次我问了这个问题,但我没有得到有效的解决方案。 我有一张桌子 像这样的视觉: 查询: $results = $mysqli->query(" SELECT T1.bc2014_id, klass, nimi, synd, teamnimi, start, TIME(`finish`) AS finish, timediff(time(finish), time(start)) AS aeg, finish - start as elapsed_time FR

有一次我问了这个问题,但我没有得到有效的解决方案。 我有一张桌子 像这样的视觉:

查询:

$results = $mysqli->query("  
      SELECT 
T1.bc2014_id, klass, nimi, synd, teamnimi, start, 
 TIME(`finish`) AS finish,
 timediff(time(finish), time(start)) AS aeg,
 finish - start as elapsed_time
FROM bc2014 T1 
INNER JOIN bc2014aeg T2 on T1.bc2014_id = T2.bc2014_id
WHERE klass = 'DCM (koerakross, mehed al. 14 a.)'
ORDER BY aeg ");
PHP表格:

print '<table class="mytable7">';
echo "<tr><th>  Class DCM </th></tr>";
print '</table>';

print '<table class="mytable7">';
echo "<tr><th>Place</th><th>ID </th><th>clas </th><th>Name </th><th>Start</th>
<th>Finish</th><th>Time</th><th>DifLeader</th><th>DifPrevios</th><th>KM/h</th></tr>";
while($row = $results->fetch_array()) {

print '<tr>';
print '<td>'.$row["ranking"].'</td>';
print '<td>'.$row["bc2014_id"].'</td>';
print '<td>'.removeParanthesis($row["klass"]).'</td>';
print '<td>'.$row["nimi"].'</td>';
print '<td>'.$row["start"].'</td>';
print '<td>'.$row["finish"].'</td>';
print '<td>'.$row["aeg"].'</td>';

print '<td>'.$row["difleader"].'</td>';
print '<td>'.$row["difprev"].'</td>';
print '<td>'.$row["speed"].'</td>';
print '</tr>';

}  
print '</table>';
$results->free();
打印“”;
回声“类DCM”;
打印“”;
打印“”;
echo“PlaceID类别名称开始
FinishTimeDifLeaderDifPreviosKM/h”;
而($row=$results->fetch_array()){
打印“”;
打印“.$行[“排名”]。”;
打印“.$row[“bc2014_id”]”;
打印“.removeParanthesis($row[“klass”])”;
打印“.$row[“nimi”]”;
打印“”。$行[“开始”]。';
打印“”。$row[“finish”]。';
打印“.$row[“aeg”]”;
打印“.$row[“difleder”]”;
打印“.$row[“difprev”]”;
打印“.$row[“速度”]”;
打印“”;
}  
打印“”;
$results->free();
MySQL时间表结构:

来自MySQL时间表的信息:

我无法运行Leader和Previous之间的时差。 当距离为15公里时,计算速度(km/h)的额外工作

最后一张桌子应该是这样的

我看到你在为此而挣扎。如果您想要简单但不干净的解决方案,请将这4行添加到SELECT语句中(在“finish-start as Passed_time”之后):


if(@bestFinish那么你想计算用户的完成时间和开始时间之间的差异摘要,还是我误解了你的问题?我想表格看起来像是Ok的可能副本,所以你想得到DifLiderDifPrevios和KM/h?如果是这样,那么让我了解你如何计算DifLiderDifPrevious和KM/h,如果是这样的话知道从哪里开始会更容易。@DarkBee他写道,问题之前被问过一次,但他没有得到一个有用的答案。@maytham在我的例子中,我是手工做的-只是举个例子,在4行之后,情况就像在phpMyAdmin中一样,得到这样的答案
if (@bestFinish <= finish, timediff(TIME(finish), TIME(@bestFinish)), '00:00:00') as difleader,
if (@previousFinish <= finish, timediff(TIME(finish), TIME(@previousFinish)), '00:00:00') as difprev,
@previousFinish := finish,
@bestFinish := if (@bestFinish > finish, finish, @bestFinish)