Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在mysql表中存储营业时间_Php_Mysql - Fatal编程技术网

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

Php 如何在mysql表中存储营业时间,php,mysql,Php,Mysql,我正在开发一个涉及当地餐馆的网站,我需要做的一件事是在mysql中存储餐馆的营业时间 从HTML到PHP的数据如下所示 // Eg: from Monday to Saturday 8am to 10pm $_POST['from'], $_POST['to'], $_POST['opening_time'], $_POST['closing_time'] CREATE TABLE business_hours ( id integer NOT NULL PRIMARY KEY, re

我正在开发一个涉及当地餐馆的网站,我需要做的一件事是在mysql中存储餐馆的营业时间

从HTML到PHP的数据如下所示

// Eg: from Monday to Saturday 8am to 10pm
$_POST['from'], $_POST['to'], $_POST['opening_time'], $_POST['closing_time']
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
)
我的
sql
表结构是这样的

// Eg: from Monday to Saturday 8am to 10pm
$_POST['from'], $_POST['to'], $_POST['opening_time'], $_POST['closing_time']
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\u hours
表中

例如:
周一
周五
(如果开盘和收盘时间为一周)

然后我需要像这样将这些工作时间存储在我的表中

Monday,9am,11pm
Tuesday,9am,11pm
Wednesday,9am,11pm
Thursday,9am,11pm
Friday,9am,11pm
谁能告诉我怎么做

任何想法都将不胜感激


谢谢。

经过大量的研究、尝试和错误,这就是最终对我有效的方法。这些数据都基于餐厅的条目,用于动态结构化标记

用于创建表的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,它是一个指数,道琼斯指数是一周中的一天

我还包括了AJAX函数,用于在工时发生变化时更新营业时间表。然后在restaurant setting php页面上,我为一周中的每一天添加了一个记录源查询,该查询使用数据库中存储的值更新select字段

查询:

<?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);    

?> 

将日期、打开时间和关闭时间移动到一个单独的表中,称为操作小时数(或其他)。将另一列id添加到第二个表中,该列将与第一个表中的值匹配。然后,您可以在第二个表中为每个餐厅设置多个条目,并且餐厅id将是两者之间的链接(关系)。搜索“一对多关系数据库”以获取有关concept@CrayonViolent,你能告诉我为什么我需要两个表格,为什么在我的
business\u hours
表格中不能有多个属于一家餐厅的条目?如果数据是这样的,你怎么知道所有记录的年份、月份和日期?@Anantkumarsing,实际上没有必要知道月份和年份。因为用户可以每周更新那里的可用性。@TNK当然可以,您可以保持原样,并有多个具有相同
restaurant\u id
值的条目。但一般来说,最好将所有“单条目”内容与“多条目”内容分开。这基本上可以归结为效率。你应该在命名上下功夫
tbl_index_id
对于列来说是一个非常奇怪的名称;)它根本没有说这是餐厅的钥匙。干杯谢谢你,DamianDziaduch。欣赏:-)如何更新特定的时间?是否应通过搜索已更改的日期记录并更新列值或删除所有行并插入新行来完成此操作?@Biswas Khayargoli否您不需要删除所有行。这是一个ajax函数。如果您更改任何一行的小时数,它将只使用该值更新数据库。@nawisor如果我想一次保存所有一天的时间,而不是每次都调用ajax,该怎么办。