Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 - Fatal编程技术网

Php 在结果表中查找前导和上一个之间的差异

Php 在结果表中查找前导和上一个之间的差异,php,mysql,Php,Mysql,编辑:添加了表格示例 在你们的帮助下,我来到了这个地方,我在表格名称、团队、开始时间、完成时间甚至两者之间的时间中都有信息。谢谢@Ian Kenney; 现在,我如何计算并在页面上显示引线之间的差异和上一页之间的差异 当前工作查询为: query(" SELECT klass, nimi, synd, teamnimi, start, TIME(`finish`) AS finish, timediff(time(finis

编辑:添加了表格示例

在你们的帮助下,我来到了这个地方,我在表格名称、团队、开始时间、完成时间甚至两者之间的时间中都有信息。谢谢@Ian Kenney;

现在,我如何计算并在页面上显示引线之间的差异和上一页之间的差异

当前工作查询为:

        query("
          SELECT 
     klass, nimi, synd, teamnimi, start, 
     TIME(`finish`) AS finish,
     timediff(time(finish), time(start)) AS aeg
  FROM bc2014 T1 
   INNER JOIN bc2014aeg T2 on T1.bc2014_id = T2.bc2014_id
   WHERE klass = 'DS1 (1 koera toukerattavedu al.14 a.)'
   ORDER BY aeg");
输出是这样的:

表如下所示:

    echo "<tr><th>koht </th><th>klass </th><th>Liikme nimi </th><th>Synniaeg</th><th>Tiim</th><th>Start</th><th>Finish</th><th>Time</th><th>Dif.Leader</th><th>Dif.Previous</th><th>km/h</th></tr>";
while($row = $results->fetch_array()) {

$timestamp = strtotime($row['synd']);
 print '<tr>';
  print '<td>' .$row["ranking"].'</td>';
 print '<td>'.removeParanthesis($row["klass"]).'</td>';
   print '<td>'.$row["nimi"].'  '.$row["Perekonnanimi"].'</td>';
     print '<td>'.$date = date('d-m-Y', $timestamp).'</td>';
    print '<td>'.$row["teamnimi"].'</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>';

}
有关更多格式:

下面的代码应该满足您的要求

$timestamp = strtotime($row['synd']);
 print '<tr>';
  print '<td>' .$row["ranking"].'</td>';
 print '<td>'.removeParanthesis($row["klass"]).'</td>';
   print '<td>'.$row["nimi"].'  '.$row["Perekonnanimi"].'</td>';
     print '<td>'.$date = date('d-m-Y', $timestamp).'</td>';
    print '<td>'.$row["teamnimi"].'</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>';
$date2 = date_create($row["difprev"]);
$date1 = date_create($row["difleader"]);
date_diff($date2, $date1)->format('%h %i %s' );
print '<td>'.$row["speed"].'</td>';
 print '</tr>';

您可以通过记住leader时间以及在循环中运行时的上一次时间来计算leader的差异

让我们将经过的时间添加到查询中

SELECT 
 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 = 'DS1 (1 koera toukerattavedu al.14 a.)'
ORDER BY aeg
然后在结果集中使用它来计算时间差

while($row = $results->fetch_array()) {
//.....

  if(isset($leader_time)){
    print '<td>'. $row["elapsed_time"] - $leader_time .'s</td>';
    print '<td>'. $row["elapsed_time"] - $last_time .'s</td>';
  } else { 
    print '<td> </td>';
    print '<td> </td>';
  }
// ...
  if(!isset($leader_time)){ $leader_time = $row["elapsed_time"] ;} 
  $last_time = $row["elapsed_time"] ;
}

然后,您可以使用$leader_time和$last_time来计算两个差异列

尝试date_diff function@Sundar Bons一些示例更受欢迎;我对这个很生疏;显示循环通过每一行的代码也请RRY@Ian Kenny将循环作为addedI编辑的问题并添加我的表格示例,你能用我的数据显示示例吗;?在过去的一年里,我更新了我的答案。让我知道它是否有效这个例子似乎不起作用。。我在MySQL中没有difprev和difleder的值,必须从表中找到1000个值。。或者在你的情况下,我不明白它是如何显示值的@伊恩·肯尼:我在这里尝试过各种各样的选择,但我还很幼稚,而且结果不在表格中。你能用我的数据举例说明我如何使用你的解释吗?看来我必须停顿一下,当然我不是那么愚蠢,但我找不到正确的方法来使用这个;附言您最后的选择使此输出经过的时间相当长;-在表中,第一个开始是时间。。finish是Timestamp hi@Ian Kenney,你能给我举一个精确的例子,用我的数据显示dif和leader以及dif和prev的位置吗
while($row = $results->fetch_array()) {
//.....

  if(isset($leader_time)){
    print '<td>'. $row["elapsed_time"] - $leader_time .'s</td>';
    print '<td>'. $row["elapsed_time"] - $last_time .'s</td>';
  } else { 
    print '<td> </td>';
    print '<td> </td>';
  }
// ...
  if(!isset($leader_time)){ $leader_time = $row["elapsed_time"] ;} 
  $last_time = $row["elapsed_time"] ;
}