2016-10-02 34 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