2016-10-02 33 views
0

好吧;我正在試圖做的是使用$currentdate變量從表usr_timetable_entrys選擇下一個即將到來的_start的列,其中username = '$username'回聲下一個即將到來的_start基於日期

$currentdate = time(); 

我用下面的查詢來獲取表中的所有即將倍圖片。

$sql = "SELECT * FROM `usr_timetable_entrys` WHERE `username` = '$username'"; 

下面是表結構的圖片;

enter image description here

所需的結果:

因此,例如使用表中的值以上,如果一週中的一天是星期二在未來即將到來的_startwednesday_start這將是在05:00:00

另一個例子是如果星期幾是星期六,下一個即將到來的_start將是monday_start00:00:00

我如何使用PHP來每週選擇下一個即將到來的_start

我知道這個問題是相當混亂,我期待下票我試圖解釋我有是最好的,我可以,所以我真的很抱歉。如果你不明白的問題。謝謝任何幫助和答案。

回答

1

您可以使用選擇的情況下

select 
    case 
     DAYOFWEEK('$currentdate') 
     when 1 then sunday_start 
     when 2 then monday_start 
     ..... 
     when 7 then saturday_start 
    end 
from `usr_timetable_entrys` 
WHERE `username` = '$username'"; 



$sql = "SELECT 
      `username`, 
      CASE 
       DAYOFWEEK('$currentdate') 
       WHEN 1 THEN sunday_start 
       WHEN 2 THEN monday_start 
       WHEN 3 THEN tuesday_start 
       WHEN 4 THEN wednesday_start 
       WHEN 5 THEN thursday_start 
       WHEN 6 THEN friday_start     
       WHEN 7 THEN saturday_start 
      END as day_start 
     FROM `usr_timetable_entrys` WHERE `username` = '$username'"; 
+1

我不明白我怎麼能落實到什麼,我試圖做到這一點。 :( –

+0

我有更新的答案。希望是明確的.. – scaisEdge

+0

這可能不會工作。它看起來像'sunday_start'等都是'var_char'列。注意'「N/A」''上tuesday_start'? – andrew