【发布时间】:2014-04-17 13:57:20
【问题描述】:
我正在尝试用 PHP 制作一个简单的预订表格。
如果相同日期和时间的预订数量小于等于10,我希望它输入详细信息到表格中。
还有什么,我想要一条消息说“预订失败!我们当时已经订满了。”
问题:我在一个特定日期和时间以及测试时刻有 10 个预订,但是我的所有消息都返回为“预订失败!我们当时已订满。”无论何时。也没有导入任何内容。
我已经在没有 SELECT COUNT 查询的情况下测试了输入过程,并且它成功输入,所以我知道我的“小于或等于”查询有问题。
非常感谢任何帮助!谢谢
<?php
require_once('lib/php/functions.php');
require_once('lib/php/db_connect.php');
//Grab Form Data
$reservationName = trim($_POST['reservationName']);
$reservationEmail = trim($_POST['reservationEmail']);
$reservationNumber = trim($_POST['reservationNumber']);
$reservationDate = trim($_POST['reservationDate']);
$reservationTime = trim($_POST['reservationTime']);
$submit = trim($_POST['submit']);
$message = '';
if (!$db_server){
die("Unable to connect to MySQL: " . mysqli_connect_error());
$db_status = "not connected";
}else{
//If submit comment pressed, get data and input
if (isset($submit) && $submit == 'Submit reservation'){
if ($reservationName&&$reservationEmail&&$reservationNumber&&$reservationDate&&$reservationTime){
$reservationName = clean_string($db_server, $reservationName);
$reservationEmail = clean_string($db_server, $reservationEmail);
$reservationNumber = clean_string($db_server, $reservationNumber);
$reservationDate = clean_string($db_server, $reservationDate);
$reservationTime = clean_string($db_server, $reservationTime);
mysqli_select_db($db_server, $db_database);
$query="SELECT COUNT(*) FROM reservations AS reservationCount WHERE reservationDate='$reservationDate' AND reservationTime='$reservationTime'";
$result=mysqli_query($db_server, $query);
$row=mysqli_fetch_array($result);
if ($row <= 10){
$query = "INSERT INTO reservations (reservationName, reservationEmail, reservationNumber, reservationDate, reservationTime)
VALUES ('$reservationName', '$reservationEmail', '$reservationNumber', '$reservationDate', '$reservationTime')";
mysqli_select_db($db_server, $db_database);
mysqli_query($db_server, $query) or
die("Insert failed: " . mysqli_error($db_server)) . $query;
$message = "<p class='success'>Booking successful! See you soon.</p>";
}else{
$message = "<p class='fail'>Booking failure! We're fully booked at that time.</p>";
}
}else{
$message = "<p class='fail'>Booking failure! Please fill in all the fields.</p>";
}
}
}
?>
【问题讨论】:
-
@YourCommonSense 哦,别说了,伙计,我是一名学生,我的学习过程正在进行中。
-
你有两个问题。 1)查询错误,2)结果检查错误。检查我的答案。
-
@LatheesanKanes 感谢 Latheesan 这已经解决了问题
-
学习什么的都可以。只有堆栈溢出不是你的老师。这个网站是为了回答问题而不是向学生提问。
-
@YourCommonSense “这个网站是为了回答问题”。正确,这是一个问题。
标签: php sql select mysqli count