2013-12-08 158 views
0
$Day = mysqli_real_escape_string($Connection, $_GET['day']); //1 
$Str = "-".$Day." day"; //"-1 day" 
$MinRange = date("Y-m-d", strtotime($Str))." 00:00:00"; //2013-12-07 00:00:00 
$MaxRange = date("Y-m-d", strtotime($Str))." 23:59:59"; //2013-12-07 23:59:59 
$query = mysqli_query($Connection, "SELECT * FROM `counter` WHERE time BETWEEN '{$MinRange}' AND '{$MaxRange}'") or die (mysqli_error($Connection)); 

while($Counter = mysqli_fetch_array($query)) 
{ 
echo $Counter['id']; 
} 

它總是跳過第一行,但它仍然不起作用,當我不使用範圍,可能是循環的問題?我看到人們使用這個循環沒有問題MYSQL不返回第一行

+0

使用佔位符。問題可能在於數據庫中的信息或提供的限制(例如,它不在「值」之間)。另外,爲了檢查日期,比較爲WHERE DATE(x)= ..'(不需要處理時間)。在任何情況下,ORDER BY *必須*存在才能獲得可靠的記錄訂單。 – user2864740

+0

看起來它不是循環問題,也不是查詢問題,因爲SELECT * FROM'counter'甚至沒有工作,所以現在我猜測它是MySQLi問題?我對MySQL沒有問題 –

回答

0

如果您的代碼除第一行外都有效,您需要在前一天23:59:59開始搜索,或者嘗試添加一個限制0,第二個數字30可以是任何你想要的,看看是否有效。

+0

我的搜索在23:59:59之前搜索,並且限制不起作用。第一行是15:52:04 –

0

這裏是我的回答,我的猜測是,你已經某種ID的是主鍵:

"SELECT * FROM `counter` WHERE time BETWEEN '{$MinRange}' AND '{$MaxRange} ORDER BY `id` DESC" 

這將返回一個值,這將是最新記錄。

+0

我需要多個回報 –

+0

不知道爲什麼你的代碼被竊聽 - 給更新一下。 ^^ – matrixdevuk