我如何在mysql表中存储营业时间

时间:2015-07-14 13:25:52

标签: php mysql

我正在一个涉及当地餐馆的网站上工作,我需要做的一件事是将餐厅营业时间存储在mysql中。

HTML到PHP的数据看起来像这样。

// Eg: from Monday to Saturday 8am to 10pm
$_POST['from'], $_POST['to'], $_POST['opening_time'], $_POST['closing_time']

我的sql表格结构是这样的。

CREATE TABLE business_hours (
  id integer NOT NULL PRIMARY KEY,
  restaurant_id integer NOT NULL,
  day integer NOT NULL,
  open_time time,
  close_time time
)

我的问题是我从上面的用户那里得到两天的开放和关闭时间。所以现在我需要在business_hours表中插入这两天之间的所有记录。

例如:MondayFriday(如果一周的开始和结束时间)

然后我需要将这些营业时间存储在我的表格中

Monday,9am,11pm
Tuesday,9am,11pm
Wednesday,9am,11pm
Thursday,9am,11pm
Friday,9am,11pm

有谁能告诉我怎么办?

任何想法都会非常感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

经过大量研究,试验和错误,这才是最终为我工作的。数据全部基于餐厅的条目,用于动态结构化标记。

用于创建表的SQL:

CREATE TABLE tbl_businesshrs (
`id` int(11) NOT NULL,
`tbl_index_id` int(11) NOT NULL,
`DoW` varchar(128) NOT NULL,
`status` enum('Open','Closed') NOT NULL COMMENT '0 is Cosed',
`start_time` varchar(128) NOT NULL,
`end_time` varchar(128) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

tbl_index_id是餐厅餐桌中餐厅的ID,它是INDEX,DoW是星期几。

我还包括AJAX函数,用于在更改小时数时更新营业时间表。然后在餐厅设置php页面上,我为一周中的每一天都包含了一个记录源查询,该查询使用存储在数据库中的值更新选择字段。

查询:

<?php 
$colname_rs_mondayshrs = "-1"; 
if (isset($_GET['restaurantid'])) { 
  $colname_rs_mondayshrs = $_GET['restaurantid']; 
} 
mysqli_select_db( $restaurant, $database_restaurant); 
$query_rs_mondayshrs = sprintf("SELECT * FROM tbl_businesshrs WHERE tbl_index_id = %s 
AND DoW='Monday'", GetSQLValueString($colname_rs_mondayshrs, "int")); 
$rs_mondayshrs = mysqli_query( $restaurant, $query_rs_mondayshrs) or 
die(mysqli_error($GLOBALS["___mysqli_ston"])); 
$row_rs_mondayshrs = mysqli_fetch_assoc($rs_mondayshrs); 
$totalRows_rs_mondayshrs = mysqli_num_rows($rs_mondayshrs);    

?> 

等一周中的每一天。然后,宏观的PHP stcrcmp函数会比较数据库中的打开和关闭条目,并使用相关条目填充选择选项:

<select id="mondaystatus" onChange="update_mondaystatus()">
                      <option selected value="" <?php if (!(strcmp("", 
$row_rs_mondayshrs['status']))) {echo "selected=\"selected\"";} ?>>Open or Closed? 
</option>
                      <option value="Open" <?php if (!(strcmp("Open", 
$row_rs_mondayshrs['status']))) {echo "selected=\"selected\"";} ?>>Open</option>
                      <option value="Closed" <?php if (!(strcmp("Closed", 
$row_rs_mondayshrs['status']))) {echo "selected=\"selected\"";} ?>>Closed</option>
                    </select>

结果:

enter image description here

和db中的结果:

enter image description here

我可以添加AJAX功能,如果有人感兴趣,或者它可以帮助节省一些宝贵的时间。

相关问题