2016-04-01 34 views
0

我正在爲我的系統創建一個平均公里數計算器。所以我試圖讓我的數據庫上的最後兩個日期和最後兩個運行。獲取多行並存儲到變量。 Mysql和php

這是我當前的代碼:

<?php 

$conn = mysqli_connect('localhost','root','','mypms'); 

$sqldates = "SELECT dateinput FROM sched ORDER BY dateinput DESC LIMIT 2"; 
$sqlrun = "SELECT reading FROM sched ORDER BY reading DESC LIMIT 2"; 

$resultdate = mysql_query($conn,$sqldates); 
$resultrun = mysql_query($conn,$sqlrun); 


while($rowdate = mysql_fetch_assoc($resultdate)) 
{ 
    this -> 
} 

$date_difference = $date2 - $date1; 

while($rowrun = mysql_fetch_assoc($resultrun)) 
{ 
    this -> 
} 

$run_difference = $run2 - $run1; 
$averagerun = $run_difference/$date_difference 

echo $averagerun; 
?> 

我應該寫上我的this所以我可以存儲我的$ resultrun和$ resultdate到DATE1,$ DATE2和$ RUN1,$ RUN2什麼。

注意:dateinput的Datetype是我的mysqldatabase上的日期。

+0

這看起來並不像一類,所以你爲什麼希望使用這個'$ - >'? – RiggsFolly

+0

如果你不知道你在做什麼[RTM](http://php.net/manual/en/index.php) – RiggsFolly

回答

1

試試這個查詢,而不是 - 它會回報你的結果

SELECT 
run_difference/date_difference AS averagerun 
FROM 
    (
     SELECT 
     DATEDIFF(date2,date1) AS date_difference, 
     reading2 - reading1 AS run_difference 
     FROM 
     (
      SELECT 
      (SELECT dateinput FROM sched ORDER BY dateinput LIMIT 0, 1) AS date1, 
      (SELECT dateinput FROM sched ORDER BY dateinput LIMIT 1, 1) AS date2, 
      (SELECT reading FROM sched ORDER BY reading DESC LIMIT 0, 1) AS reading1, 
      (SELECT reading FROM sched ORDER BY reading DESC LIMIT 1, 1) AS reading2 
      FROM DUAL 
     ) t1 
    )t2 

或「一個班輪」:

SELECT 
    (SELECT reading FROM sched ORDER BY reading DESC LIMIT 1, 1)-(SELECT reading FROM sched ORDER BY reading DESC LIMIT 0, 1) / DATEDIFF((SELECT dateinput FROM sched ORDER BY dateinput LIMIT 1, 1), (SELECT dateinput FROM sched ORDER BY dateinput LIMIT 0, 1)) AS averagerun 
FROM DUAL 
相關問題