时间戳上的奇怪的mysql行为

时间:2012-02-21 08:57:09

标签: php mysql mysqli

请看一下这个mysql查询。 应该做的事情非常简单 - 列出日期,从时间戳不超过10天创建。

它有效但不完美......

  • 如果我只有1个时间戳匹配,那么我有0个结果。
  • 如果我有2个时间戳匹配,我有1个结果。
  • 如果我有3个时间戳匹配,我有2个结果
  • ......依旧......

因此,查询总是忽略表中的最新时间戳,为什么?!

$timestamp_now = date('U');
$timestamp_10_day_back = $timestamp_now - 864000;

mysql_select_db("$db_visitors");
$sql = "SELECT DATE(FROM_UNIXTIME(visitors_timestamp))
        FROM visitors
        WHERE visitors_timestamp > $timestamp_10_day_back
        ORDER BY visitors_timestamp DESC";
$sql = mysql_query($sql);
$row = mysql_fetch_array($sql);

while($row = mysql_fetch_array($sql)) {
    echo $row[0] . "<br>";
}

3 个答案:

答案 0 :(得分:7)

只需删除

$row = mysql_fetch_array($sql);

...这是吞下你的第一个结果

答案 1 :(得分:1)

由于行$row = mysql_fetch_array($sql);,第一行被忽略,然后您在while循环中再次调用它。只需删除此行。

答案 2 :(得分:0)

尝试以下代码

$n=count($row);
if($n>0){
 for($i=0;$i<$n;$i++){
   echo $row[i];}}

print_r($row);