gpt4 book ai didi

php - 防止重复预订 PHP/MYSQL

转载 作者:行者123 更新时间:2023-11-29 02:55:19 24 4
gpt4 key购买 nike

您好,我在使用预约数据库时遇到了问题。我已经坚持了 3 天,我不知道该怎么做。我有各种长度的约会,我使用 PHP POST 从表单中检索这些约会。然后我尝试用收到的值更新数据库。我想阻止用户重复预订约会和预订约会,而另一个人正在进行。

这是我的数据库 MYSQL DB .

lesson_date_time 字段为 DATETIME 格式,最大值为 6。

表单代码

<form method="post" name="update" action="dtupp.php" /> 
Email:<br>
<input type="text" name="email" /><br>
Lesson Length:<br>
<input type="text" name="length" /><br>
Start Date<br>
<input type="text" name="date"/><br>
<input type="submit" name="Submit" value="update" />
</form>

我传递给表单的值是

对于开始日期:2014-11-30 12:41:00

类(class)长度:60

对于电子邮件:Fake@aol.com

我的处理器声明

<?php 
$mins = $_POST["length"];
$date_start = $_POST["date"];
$date_end = date("Y-m-d H:i:s", strtotime("$date_start + $mins minute"));
$emails = $_POST['emails'];
mysql_connect("localhost", "dk1", "root1") or die("Connection Failed");
mysql_select_db("usersignup")or die("Connection Failed");
$query = " UPDATE bookings SET email = '$emails' WHERE lesson_date_time BETWEEN CAST('$date_start' AS DATETIME) AND CAST('$date_end' AS DATETIME) ";
if(!mysql_query($query)){
die('Could not update data: ' . mysql_error());
}
else{
}
?>

出于某种原因,我无法将值输入到数据库中。 MYSQL 不返回任何错误。我通过放错引号来检查错误报告是否有效,MYSQL 立即标记我。它不会返回任何错误,但也不会将任何内容发布到数据库中。

最佳答案

您在这里缺少的关键是有一个条件可以防止覆盖以前的预订。在目前的情况下,将采用以下形式:

UPDATE bookings SET ... WHERE email IS NULL

这假定 email 最初是 NULL,它应该是。避免将其设置为钝的东西,例如 'none' 或空字符串。

请注意,您要避免违反 Zero, One or Infinity Rule并遵守适当的database normalization规则:创建一个代表进行预订的个人的表。即使该表一开始只包含电子邮件地址,它也是朝着正确的数据库完整性迈出的一大步。

然后您将插入 user_id,它指的是您的 users 表中的记录。这样,如果用户更改了他们的 email 地址,您只需更新一行,而不用更新多少表中的 N 行。

这在用户和预订之间建立了适当的“一对多”关系。从那里您可以构建一个非常强大的应用程序。

关于php - 防止重复预订 PHP/MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31254973/

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