首页 > 解决方案 > 查找两个不同列中的两个日期之间是否存在条目?

问题描述

代码有什么问题??仅当给定时间段内不存在记录时,我才需要允许新条目。就像如果数据库中存在 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);
  }
}
 }

 ?>

标签: phpmysql

解决方案


我认为你应该使用AND而不是OR.


推荐阅读