我正在尝试一个模拟预订系统,并且正在努力让记录正确插入
这是按下“Book”按钮时调用的函数:
function bookAppointment($clientName, $aptDate, $aptTime, $aptDetails, $withWho) {
global $db;
//Ensure there are no conflictions
$confSQL = "SELECT aptDate,aptTime,withWho FROM appointments";
$confQuery = mysqli_query($db, $confSQL);
$data = array();
while($row = mysqli_fetch_array($confQuery)) {
if($row[0] == $aptDate) {
if($row[1] == $aptTime) {
if($row[2] == $withWho) {
header("Location: dashboard.php?error=booking_confliction");
} else {
addAppointment($clientName, $aptDate, $aptTime, $aptDetails, $withWho);
}
} else {
addAppointment($clientName, $aptDate, $aptTime, $aptDetails, $withWho); //Using another function makes repeated code considerably tidier
}
} else {
addAppointment($clientName, $aptDate, $aptTime, $aptDetails, $withWho);
}
}
}
这是'addAppointment'功能:
function addAppointment($clientName, $aptDate, $aptTime, $aptDetails, $withWho) { //Makes error checking easier
global $db;
$sql = "INSERT INTO appointments VALUES $clientName,$aptDate,$aptTime,$aptDetails,$withWho";
$result = mysqli_query($db, $sql);
if($result) {
header("Location: dashboard.php");
} else {
header("Location: dashboard.php?error=sql_error");
}
}
问题在于根本没有添加任何东西,但我很确定if语句检查正常,除非我只是失明。有什么建议吗?
修改
SQL语句更改解决了问题;
"INSERT INTO appointments`(clientName, aptDate, aptTime, aptDetails, withWho) VALUES ('$clientName','$aptDate','$aptTime','$aptDetails', (SELECT userId FROM users WHERE userId='$withWho'))"
答案 0 :(得分:0)
问题通过SQL语句更改解决了;
"INSERT INTO appointments`(clientName, aptDate, aptTime, aptDetails, withWho) VALUES ('$clientName','$aptDate','$aptTime','$aptDetails', (SELECT userId FROM users WHERE userId='$withWho'))"