PHP,MYSQL,如何为日期创建验证,即我们无法输入已经在数据库中输入的日期


PHP,MYSQL, How to create validation for date, which is we cannot input the date that already been input in database

  • 我正在使用php和mysql数据库
  • 我正在做我的宴会厅预订项目
  • 我在预订订单中使用日期选择器

我尝试做/怎么做?

  • 如果 else/validation; 也就是说,我已经在数据库中输入的日期不能在第二次输入相同的日期。

谁能帮我如何编码?

<?php

include 'connection.php';
$date = $_POST['date'];
$rand = rand ();
session_start();
$_SESSION['random']=$rand;
$type = $_POST['typeofballroom'];
$setup = $_POST['setup'];
$name = $_POST['name'];
$conNum = $_POST['contactnumber'];
$email = $_POST['email'];
$themes = $_POST['theme'];
$menu = $_POST['menu'];
$note = $_POST['notes'];

    $query = "SELECT * FROM ballroom_form WHERE date = '$date' ";
    $result = mysql_query($query);


    $person = mysql_fetch_array($result);

    if($date == $person['date']) {
    echo "unvalid refference number";
    }

    else
    {
    mysql_query ("INSERT INTO ballroom_form  (`ID`,`random_number`,`ballroom_type`,`set_up`,`date`,`name`,`contact_number`,`email`,`themes`,`menu`,`note`) VALUES (NULL,'$rand','$type','$setup','$date','$name','$conNum','$email','$themes','$menu','$note')") or die(mysql_error());
   echo "user has been added";
   header ('location: randomNum.php');
   }

?>

当我输入相同的日期时,它仍然继续 ELSE。 .我已经检查了所有表单名称,日期名称,数据库属性,没有错别字没有问题。

在插入数据库之前,创建一个返回 bolean 值的函数并检查该用户输入的日期是否已在数据库中,如果函数返回 true,则表示日期已经在数据库中,因此向用户显示消息否则插入。伪代码将是

If(checkdateindatabase())
(
  //show error to user
)
Else (
  Do inset
)

这是分步的答案。

  1. 检查数据库中是否已存在用户选择的日期。
  2. 如果不存在,请继续使用脚本并进行保留。
  3. 如果日期已存在,请回显相应的错误。

请务必使用 MySQLi 或 PDO 准备语句,而不是现在已弃用的 mysql_* 函数。此链接解释了基础知识,并提供了其他阅读材料的链接。http://mattbango.com/notebook/code/prepared-statements-in-php-and-mysqli/

据我了解您的问题,这是答案。在创建表的数据库中 开始日期。你可以使独特的.或其他解决方案是,您可以进行编码,使其无法提交重复的日期。就像现在有人发布表格一样,你的约会在例如。

$sql ="从日期= '$variable 1'的表中选择 *"; $result = mysql_query($sql) ;

而 ($row = mysql_fetch_assoc($result)){ foreach ($row as $value){回声"请使用其他日期";

}
}
if(empty($value))
{
header('location:yourpage.php');
exit();
}

?>通过这种方式,您可以检查是否有人没有使用相同的日期。