php - 查找两个不同列中的两个日期之间是否存在条目?
问题描述
代码有什么问题??仅当给定时间段内不存在记录时,我才需要允许新条目。就像如果数据库中存在 1-1-19 到 3-1-19 一样,则不应发生此日期范围的新条目。
<?php
if (isset($_POST['book'])) {
require 'db2.php';
$name=$_POST['name'];
$mail=$_POST['emial'];
$mob=$_POST['phone'];
$ddr=$_POST['add'];
$d11=$_POST['date'];
$d12=$_POST['date2'];
$selected_val=$_POST['type'];
if (empty($name)||empty($mail)||empty($mob)||empty($ddr)||empty($d11)||empty($d12)||empty($selected_val)) {
header("Location: ./booking.php?error=emptyfield");
exit();
}
elseif (!filter_var($mail, FILTER_VALIDATE_EMAIL)&& !preg_match("/^[a-zA-Z]*$/",$name)) {
header("Location: ./booking.php?error=entervalidnaneoremail");
exit();
}
elseif (!preg_match("/^[0-9]*$/", $mob)) {
header("Location: ./booking.php?error=invalidphone");
}
else {
$sql="SELECT * FROM book WHERE d1>'$d11' OR d2<'$d12'";
$result=mysqli_query($conn,$sql);
$row=mysqli_fetch_row($result);
echo $row;
if ($row>0) {
header("Location: ./booking.php?error=Takendate");
exit();
}
else {
$sql="INSERT INTO book(name, email, no, adr, d1, d2, type) VALUES('$name','$mail','$mob','$ddr','$d11','$d12','$selected_val')" ;
mysqli_query($conn,$sql);
}
}
}
?>
解决方案
我认为你应该使用AND
而不是OR
.
推荐阅读
- php - URI 百分比编码:Postman vs Insomnia vs PHP http_build_query
- sql - SQL 查询:仅当登录的用户 ID 在现有表中不存在时才将一个表与现有的多个连接表连接起来并获取它的条目
- javascript - 这可以用正则表达式完成吗?在字符串中找到我的密钥
- python-3.x - 如何从 Python 脚本运行/打开特定文档?
- ios - 在 iOS 上构建 React 本机失败 - 使用 Apple M1 芯片
- javascript - 尝试用 puppeteer 抓取时出现空换行符
- r - 将特定标签添加到 R 中 geom_bar 上的列顶部
- html - 移除 button[type="submit"] 的嵌入阴影
- jquery - 当我在更改上使用 jquery 时,选择表单无法通过单击更改值
- mysql - 将一个模型关联到另一个模型(包含许多关联的模型)的正确方法是什么?