gpt4 book ai didi

php mysql 时间预订

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:53 24 4
gpt4 key购买 nike

我正忙于预订系统,需要检查是否有 2 次重叠。到目前为止,这是我的查询,如果结果 > 1,那么在此期间已经有预订。尝试获取行数时出现错误/警告。 (见下文)因此,我的计数未被计算并进行了预订。请帮忙。此外,我在我的数据库中使用时间类型(开始时间和结束时间),但后变量是字符串时间,因此我使用 strtotime() 的原因。请查看以下错误:

$mystarttime = '07:00:00';
$myendtime = '08:00:00';
$sql = "SELECT * FROM $tbl_name2 WHERE
(
(strtotime($mystarttime) < starttime AND strtotime($myendtime) > starttime)
OR
(strtotime($mystarttime) > starttime AND strtotime($myendtime) < endtime)
OR
(strtotime($mystarttime) > starttime AND strtotime($mystarttime) < endtime)
OR
(starttime < strtotime($mystarttime) AND starttime > strtotime($myendtime))
OR
(starttime > strtotime($mystarttime) AND endtime < strtotime($myendtime))
OR
(starttime > strtotime($mystarttime) AND endtime < strtotime($mystarttime))
OR
(strtotime($mystarttime) = starttime)
OR
(strtotime($mystarttime) = endtime)
OR
(strtotime($myendtime) = starttime)
OR
(strtotime($myendtime) = endtime)
OR
(starttime = strtotime($mystarttime))
OR
(starttime = strtotime($myendtime))
OR
(endtime = strtotime($mystarttime))
OR
(endtime = strtotime($myendtime))
)
AND
hairdresserid = $myhairdresserid
AND
date = $mydate";

$result = mysql_query($sql);

//Mysql_num_row is counting table row
$count = mysql_num_rows($result)or die('Query failed: ' . mysql_error() . $sql);

我收到的警告信息:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxx/xxx/xxx/xxx/makebooking.php on line 165

Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':00:00) < starttime AND strtotime(08:00:00) > starttime) OR ' at line 3SELECT * FROM bookings WHERE ( (strtotime(07:00:00) < starttime AND strtotime(08:00:00) > starttime) OR (strtotime(07:00:00) > starttime AND strtotime(08:00:00) < endtime) OR (strtotime(07:00:00) > starttime AND strtotime(07:00:00) < endtime) OR (starttime < strtotime(07:00:00) AND starttime > strtotime(08:00:00)) OR (starttime > strtotime(07:00:00) AND endtime < strtotime(08:00:00)) OR (starttime > strtotime(07:00:00) AND endtime < strtotime(07:00:00)) OR (strtotime(07:00:00) = starttime) OR (strtotime(07:00:00) = endtime) OR (strtotime(08:00:00) = starttime) OR (strtotime(08:00:00) = endtime) OR (starttime = strtotime(07:00:00)) OR (starttime = strtotime(08:00:00)) OR (endtime = strtotime(07:00:00)) OR (endtime = strtotime(08:00:00)) ) AND hairdresserid = 12 AND date = 2012-01-25

编辑#1:

Query failed: SELECT * FROM bookings WHERE ( (1359118800 < starttime AND 1359122400 > starttime) OR (1359118800 > starttime AND 1359122400 < endtime) OR (1359118800 > starttime AND 1359118800 < endtime) OR (starttime < 1359118800 AND starttime > 1359122400) OR (starttime > 1359118800 AND endtime < 1359122400) OR (starttime > 1359118800 AND endtime < 1359118800) OR (1359118800 = starttime) OR (1359118800 = endtime) OR (1359122400 = starttime) OR (1359122400 = endtime) OR (starttime = 1359118800) OR (starttime = 1359122400) OR (endtime = 1359118800) OR (endtime = 1359122400) ) AND hairdresserid = 12 AND date = 2012-01-25

编辑#2:

Query failed: SELECT * FROM bookings WHERE ( (1359118800 < starttime AND 1359122400 > starttime) OR (1359118800 > starttime AND 1359122400 < endtime) OR (1359118800 > starttime AND 1359118800 < endtime) OR (starttime < 1359118800 AND starttime > 1359122400) OR (starttime > 1359118800 AND endtime < 1359122400) OR (starttime > 1359118800 AND endtime < 1359118800) OR (1359118800 = starttime) OR (1359118800 = endtime) OR (1359122400 = starttime) OR (1359122400 = endtime) OR (starttime = 1359118800) OR (starttime = 1359122400) OR (endtime = 1359118800) OR (endtime = 1359122400) ) AND hairdresserid = 12 AND date = 2012-01-25

编辑#3:

Query failed: SELECT * FROM bookings WHERE ( ('07:00:00' < starttime AND '08:00:00' > starttime) OR ('07:00:00' > starttime AND '08:00:00' < endtime) OR ('07:00:00' > starttime AND '07:00:00' < endtime) OR (starttime < '07:00:00' AND starttime > '08:00:00') OR (starttime > '07:00:00' AND endtime < '08:00:00') OR (starttime > '07:00:00' AND endtime < '07:00:00') OR ('07:00:00' = starttime) OR ('07:00:00' = endtime) OR ('08:00:00' = starttime) OR ('08:00:00' = endtime) OR (starttime = '07:00:00') OR (starttime = '08:00:00') OR (endtime = '07:00:00') OR (endtime = '08:00:00') ) AND hairdresserid = 12 AND date = 2012-01-25

编辑#4:

Query failed: SELECT * FROM bookings WHERE ( ('07:00:00' < starttime AND '08:00:00' > starttime) OR ('07:00:00' > starttime AND '08:00:00' < endtime) OR ('07:00:00' > starttime AND '07:00:00' < endtime) OR (starttime < '07:00:00' AND starttime > '08:00:00') OR (starttime > '07:00:00' AND endtime < '08:00:00') OR (starttime > '07:00:00' AND endtime < '07:00:00') OR ('07:00:00' = starttime) OR ('07:00:00' = endtime) OR ('08:00:00' = starttime) OR ('08:00:00' = endtime) OR (starttime = '07:00:00') OR (starttime = '08:00:00') OR (endtime = '07:00:00') OR (endtime = '08:00:00') ) AND hairdresserid = 12 AND date = '2012-01-25'

最佳答案

mysql 中没有strtotime 函数,因此您必须执行以下操作

要么从查询中删除所有 strtotime 并将其添加到 $mystarttime ($mystarttime = strtotime('07:00:00');)或者将 strtotime($myendtime) 的每次出现替换为 ".strtotime($myendtime)."

我认为您可以更轻松地编写查询,您可以尝试以下操作:

"SELECT * FROM " . $tbl_name2 . " WHERE 
(starttime BETWEEN " . $mystarttime . " AND " . $myendtime . ")
AND
(endtime BETWEEN " . $mystarttime . " AND " . $myendtime . ")
AND
hairdresserid = " . $myhairdresserid . "
AND
date = '" . $mydate . "';"

关于php mysql 时间预订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14518507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com