Php 当开始时间和结束时间已经在mysql中时,我不能插入相同的时间并在它们之间插入
我有这张桌子Php 当开始时间和结束时间已经在mysql中时,我不能插入相同的时间并在它们之间插入,php,sql,time,Php,Sql,Time,我有这张桌子 _________________________________ |id|date |stime |etime | |6 |2014-02-02|01:00:00|13:00:00| |7 |2014-02-02|14:00:00|15:00:00| 我现在一直在找,但我想我找不到了。所以我需要帮助 因为我不熟悉预订系统,在这个系统中,时间是唯一重要的东西 系统要求场馆的开始时间和结束时间,一旦它被预订 其他客户端无法保留添加的时间 如
_________________________________
|id|date |stime |etime |
|6 |2014-02-02|01:00:00|13:00:00|
|7 |2014-02-02|14:00:00|15:00:00|
我现在一直在找,但我想我找不到了。所以我需要帮助
因为我不熟悉预订系统,在这个系统中,时间是唯一重要的东西
系统要求场馆的开始时间和结束时间,一旦它被预订
其他客户端无法保留添加的时间
如上所述,在表的第一个值之间
我需要这部分的指导,我使用php
这是我遇到困难的代码:
$stime = ($_POST['stime']);
$etime = ($_POST['etime']);
$date = date("Y-m-d");
if($stime < $etime){
$sql_all = "SELECT * FROM time";
$query_all = mysql_query($sql_all);
while($get_all = mysql_fetch_assoc($query_all)){
echo $g_stime = $get_all['stime'];
echo "<br>";
echo $g_etime = $get_all['etime'];
echo $sql_compare = "SELECT * FROM time WHERE date='$date' BETWEEN '$g_stime' AND '$g_etime'";
$query_compare = mysql_query($sql_compare);
while($get_compare = mysql_fetch_assoc($query_compare)){
$get_compare['stime'];
$get_compare['etime'];
}
}
}else{
echo 'dont insert';
}
$stime=($_POST['stime']);
$etime=($_POST['etime']);
$date=日期(“Y-m-d”);
如果($stime<$etime){
$sql\u all=“选择*从时间”;
$query\u all=mysql\u query($sql\u all);
while($get\u all=mysql\u fetch\u assoc($query\u all)){
echo$g_stime=$get_all['stime'];
回声“
”;
echo$g_etime=$get_all['etime'];
echo$sql_compare=“选择*从时间,其中日期=“$date”介于“$g_stime”和“$g_etime”之间;
$query\u compare=mysql\u query($sql\u compare);
而($get\u compare=mysql\u fetch\u assoc($query\u compare)){
$get_compare['stime'];
$get_compare['etime'];
}
}
}否则{
回显“不插入”;
}
感谢您的帮助所以您的ID为2的行不可能存在?从您的解释中我可以得到什么,您希望实现一个验证,该验证不允许插入一个时间范围与任何现有记录的时间范围重叠的记录。这可以通过检查开始时间<(任何现有记录的结束时间)和结束时间>(现有记录的开始时间)来实现。若您计划在SQL端实现它,那个么可以在where条件中使用exists子句。让我知道你是否能解决它,你确定日期不重要吗?嗯,日期也很重要,我应该注意到这一点sorry@DipenduPaul谢谢你,伙计,真管用