2012-05-09 150 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”;