2015-02-06 45 views
0

我在MySQL DB中有一个表,它存储了餐厅在每个工作日和时间段内提供的菜单。显示菜单PHP按时间段PHP MySQL

表结构如下:

i_type  i_name i_cost i_day i_start  i_end 
-------------------------------------------------------- 
Breakfast Prantha 20   0  07:00  11:00 
Lunch  Special 80   0  11:01  15:00 
Dinner  Special 100  0  15:01  21:00 

其中0 =周日等。

e.g早餐(07:00至11:00),午餐(11:01至15:00)

现在的菜单每星期显示的是完美的罚款。但我想按照以下方法显示菜单:

  1. 如果客户在早晨时间即在早餐或早餐时间访问餐厅,则应允许他预订早餐,午餐和晚餐。
  2. 如果客户在午餐时间访问餐厅,则只允许订购午餐和晚餐,而不是早餐。

要获得一周的某一天,我使用下面的方法

$jd=cal_to_jd(CAL_GREGORIAN,date("m"),date("d"),date("Y")); 
$dw = (jddayofweek($jd,0)); 

目前我如下处理时隙:

$datr = (int)date('Hi'); 
$timew= str_replace(':', '', $row['i_start']); $timec= str_replace(':', '', 
$row['i_end']); 
if (($datr < $timew) || ($datr > $timec)) { ?> 
<button class="btn btn-default" style="background:#ED3E49;border-color: 
#E31522;color:#fff;padding:5px;border-radius:5px" disabled="disabled"> 
&nbsp;Ordering Closed</button> } ?> 

但上述做法是不是让我订购午餐时我在早餐时间等等。

+0

但为什么类型转换需要他们...比较,我只是工作正常,但这里的问题是与条件发挥 – Gags 2015-02-06 04:55:21

回答

1

试试这个:

$dayValueFromDB = $row['i_day']; 
    $jd=cal_to_jd(CAL_GREGORIAN,date("m"),date("d"),date("Y")); 
    $currentDayValue = (jddayofweek($jd,0)); 
    //for just today and tomorrow the last condition in if is for the senario if today in saturday and tomorrow is sunday 
    if($dayValueFromDB == $currentDayValue || $dayValueFromDB == ($currentDayValue+1) || ($dayValueFromDB == 0 && $currentDayValue==6)) 
    if ($datr > $timec){ 
     //your code 
    } 
    } 
else{ 
    //for all other days display no order will be taken or whatever you like 
    } 
+0

空指令..这种方法我都试过,它可以让点早餐即使在11:00之后 – Gags 2015-02-06 05:09:49

+0

我该如何显示今天的菜单和第二天的菜单... – Gags 2015-02-06 05:18:00

+0

是no noob ...因为今天是星期五//所以我想要菜单在星期五和星期六显示 – Gags 2015-02-06 05:23:17