2012-04-19 76 views
0

我想遍歷MySQL表,並根據循環所在的當前行和前一個循環執行計算。循環遍歷MYSQL表,並對行和前一行字段執行操作PHP

說我的表有2列 - Film_idFilmRelease,我將如何循環並回顯出當前的FilmRelease和上一行的列值?

謝謝你們

我有到這個階段,但由於某種原因它不打印出任何東西

<?php 
mysql_connect("localhost", "****", "*****") or die(mysql_error()); 
mysql_select_db("*****") or die(mysql_error()); 

$sql = mysql_query("SELECT FilmRelease FROM Films_Info") 
or die(mysql_error()); 

$last_value = null; 

while ($row = mysql_fetch_assoc($sql)) { 

    if (!is_null($last_value)) { 

    print date_diff($row['FilmRelease'], $last_value) . "<BR>"; 
    } 

    $last_value = $row['FilmRelease']; 
} 
+0

歡迎SO。也許你應該首先看看stackoverflow.com/questions/how-to-ask。 – dgw 2012-04-19 11:11:46

回答

2

像這樣:

$last_value = null; 

while ($row = mysql_fetch_assoc($sql)) { 

    if (!is_null($last_value)) { 
    $interval = date_diff(new DateTime($row['FilmRelease']), new DateTime($last_value)); 
    echo $interval->format('Y-m-d'); 
    } 

    $last_value = $row['FilmRelease']; 
} 
+0

謝謝你的回覆,我用你的代碼編輯了我的問題,但是它沒有打印任何東西:S – DIM3NSION 2012-04-19 11:40:18

+0

'date_diff()'期待[DateTime對象](http://php.net/manual/en/class.datetime。 PHP)。所以試一下:'print date_diff(new DateTime($ row ['FilmRelease']),new DateTime($ last_value));' – 2012-04-19 12:18:21

+0

我收到這個錯誤可捕獲的致命錯誤:類DateInterval的對象無法轉換爲字符串 - 列結構類型設置爲日期而不是日期時間。會導致問題嗎? – DIM3NSION 2012-04-19 12:21:55