2012-05-09 146 views
1

我在我的頁面上運行一個查詢,它返回錯誤的結果。 這裏是我的代碼:MySQL返回錯誤記錄

$timestamp = time(); 
$query = "SELECT * FROM videos WHERE expire >= $timestamp AND home = 1 AND active = 1 ORDER BY id DESC LIMIT 1"; 
$result = mysql_query($query) or die(mysql_error()); 

if(mysql_num_rows($result) > 0) { 
    $row = mysql_fetch_array($result); 
    foreach ($row as $key => $value) { 
     $$key = $value; 
    } 
} 

的問題是,它返回第二個記錄,而不是最近的ID。但是,奇怪的部分是,如果我在MySQL的Query窗口中運行它,它會返回正確的記錄。

這是它應該返回的記錄中的數據: ID:53,視頻ID:ABC123,到期:1335596400,家庭:1,活動:1對

任何人有任何想法?

+0

請向我們展示您的數據集 – Madbreaks

+0

您是否嘗試使用expire字段進行排序? –

+0

也許它與你的計算機的時區有關? –

回答

2

133559640028 april,所以清楚的不是time()的結果; 看來,您正在使用MySQL的另一個時間戳runnign查詢(或沒有時間戳全部)

+0

有趣的是,當您長時間注視顯示器時,您如何看待某些東西......感謝您幫助我瞭解我的錯誤。 – Rick

0

使用 $查詢=「SELECT * FROM視頻WHERE到期> = $時間戳和家庭= 1 AND active = 1的ORDER BY ID DESC LIMIT 0,1「;

代替

$查詢= 「SELECT * FROM視頻WHERE到期> = $時間戳和家庭= 1 AND active = 1的ORDER BY ID DESC LIMIT 1」;