2011-07-21 32 views
0

我想做一個PHP工具,將獲得特定日期之間註冊的用戶。但是,我遇到了一個奇怪的問題。該查詢似乎無法識別表中的所有記錄。讓我解釋。如何解決始終停在特定記錄的mysql SELECT查詢?

這裏是PHP代碼:

function getRegistrations($startDate,$endDate) { 
    //echo $startDate; 
    //echo $endDate; 
    $startDate = date('Y-m-d H:i:s',$startDate); 
    $endDate = date('Y-m-d H:i:s',$endDate); 
    $query = "SELECT * FROM database.user WHERE created_date>='".$startDate."' AND created_date<='".$endDate."';"; 
    $result = mysql_query($query); 
    $data = array(); 
    $data['query'] = $query; 
    $data['content'] = array(); 
    if($result) { 
     $data['status'] = 1; 
     $data['message'] = "Success"; 
    } 
    $count = 0; 
    $data['num_rows'] = mysql_num_rows($result); 
    while ($row = mysql_fetch_assoc($result)) { 
     $data['content'][$row['user_id']] = $row; 
     $count++; 
    } 
    $data['count'] = $count; 
    echo json_encode($data); 
} 

當我運行在MySQL工作臺查詢,它工作得很好。但是,當我通過php運行它時,似乎忽略了某個記錄之後的每條記錄。我可以看到所有記錄,最多爲user_id = 243,然後結束。 num_rows和count仍然相等,並且它們等於內容的長度。但是,如果我直接從mysql工作臺運行查詢,我可以看到它應該高得多。 此外,無論日期如何,它總是停在相同的記錄上。如果我選擇較早的開始日期,那麼它可能會返回50條記錄,但它仍然停留在同一個記錄中。

有沒有人有任何想法?儘管我對MySQL非常陌生,但我一直無法找到任何有類似問題的人。

在此先感謝!

+0

計數是否也沒有增加?你是否迴應了你的查詢,以確保它在你的工作臺中是一樣的? – Wrikken

+1

user_id是主鍵嗎?如果你獲得了多個具有相同user_id的記錄,那麼在某個時刻,你只需要用新行覆蓋以前的記錄。 –

+0

哎呀,它變成了一個很大的錯誤。在使用本地主機測試數據庫時,我正在查看遠程數據庫。 –

回答

0

刪除該特定行。就那麼簡單。重新插入它,看看問題是否仍然存在。

0

mysql_query()說查詢字符串不應該以分號結尾。您的查詢應該是

$query = "SELECT * FROM database.user WHERE created_date>='".$startDate."' AND created_date<='".$endDate."'";