2012-06-04 57 views
1

名爲users的數據庫表有一列timemarksin_array()不返回所有結果

timemark領域是這樣的.. 11:00:00, 13:45:00, 17:00:00, 18:25:00(時間標記改變爲每個用戶)

我的PHP腳本應該列出誰擁有一個特定的時間標記的用戶。

查詢:通過分割使用str_getcsv

  • timemarks串

    1. 迭代通過用戶
    2. 創建陣列$timemarks_arr爲每個用戶:SELECT * FROM ('users')(查詢結果返回給$users

      環路用指定的時間標記值回顯用戶

    foreach ($users as $user): 
    
        $timemarks_arr = str_getcsv($user->timemarks); //split time-marks by comma and create array 
    
        if (in_array("17:00:00", $timemarks_arr)) //users with specified time-mark 
        {        
         echo $entry->username . "<br />"; 
        } 
    
    endforeach; 
    

    出於某種原因,回聲只有2的用戶,但也有更多的帶有時間標記17:00:00。有誰知道爲什麼?

  • 回答

    4

    它不會匹配像17:00:00這樣的值,因爲有一個前導空間。

    試試這個從字符串的開頭和結尾剝去所有空格:

    $timemarks_arr = array_map("trim", str_getcsv($user->timemarks)); //split time-marks by comma and create array 
    
    +0

    是的,空格是一種常見的小姐出的問題。 – Raptor

    +0

    謝謝!修剪似乎工作。爲了避免任何其他問題,我正考慮在添加到數據庫時將'00:00:00'時間格式更改爲時間戳字符串 – CyberJunkie