2012-02-21 69 views
0

請看看這個mysql查詢。它的應該做的很簡單 - 列表日期,從不超過10天的時間戳創建。時間戳上的奇怪mysql行爲

它的工作原理,但並不完美......

  • 如果我只有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>"; 
} 

回答

7

只是刪除

$row = mysql_fetch_array($sql); 

...這是你吞下第一個結果,因爲你在while循環再次調用它的行$row = mysql_fetch_array($sql);那麼

1

第一行被忽略。只要刪除這一行。

0

嘗試以下

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

print_r($row); 
代碼