带有插入/更新的html/php/sql表单
我有一张桌子,上面有一张等候名单上的客户名单,你可以选择将其中一位客户转移到一个空房间 当您选择此客户机时,它会移动到一个名为“MoveIn1.html”的页面上,在该页面上获取该客户机的ID,并使用该ID显示其姓名和ID。它还会显示一个下拉框,显示所有空置的房间,使用户可以选择将客户机移动到哪个房间。然后,用户还可以选择客户入住的日期并提交此信息 提交后,它进入“MoveIn2.php”,在这里它应该将客户的活动状态更新为“1”(aka,yes),将所选房间的空闲房间更新为“0”(aka,no),并创建/插入新的入住记录,以及客户id(入住客户id)、房间id(入住房间id)和开始日期。我没有收到任何错误,但我的表没有更新,也没有创建占用记录;当回显我携带的变量时,也不会显示任何内容,因此我不确定如何对其进行排序。任何帮助都将不胜感激 一些MoveIn1.html代码:带有插入/更新的html/php/sql表单,php,html,mysql,sql,Php,Html,Mysql,Sql,我有一张桌子,上面有一张等候名单上的客户名单,你可以选择将其中一位客户转移到一个空房间 当您选择此客户机时,它会移动到一个名为“MoveIn1.html”的页面上,在该页面上获取该客户机的ID,并使用该ID显示其姓名和ID。它还会显示一个下拉框,显示所有空置的房间,使用户可以选择将客户机移动到哪个房间。然后,用户还可以选择客户入住的日期并提交此信息 提交后,它进入“MoveIn2.php”,在这里它应该将客户的活动状态更新为“1”(aka,yes),将所选房间的空闲房间更新为“0”(aka,no
$id = $_GET['id'];
//SELECTS from client where the selected client's ID is equal to client_id
$stmt = $dbh->prepare("SELECT * FROM client WHERE client_id=:id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$row = $stmt->fetch();
echo "<b>Client ID: </b>" . $row['client_id'];
echo "<br><br>";
echo "<b>Client Name: </b>" . $row['first_name'] . " " . $row['last_name'];
echo "<br><br>";
///////////////////////////////////////////////////////////////
//Creates a form for room_id
echo "<form action='MoveIn2.php'>";
//Creates drop down box to show the current rooms vacant
echo "<b>Choose a room: </b>";
$sql = "SELECT * FROM room";
$sql.= " WHERE room_vacant = 1";
$stmt = $dbh->query($sql);
echo "<select name='room_id'>";
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<option value='" . $row['room_id'] . "'>" . $row['room_id'] . "</option>";
} //Closes drop down box
echo "</select><br><br>";
//Move-in date
echo "<b>Move-in date: </b>";
echo "<input type='date' name='start_date' value='" . date("Y/m/d") . "' required/><br><br>";
echo "<input type='hidden' name='id' value='" . $id . "'/>";
echo "<input type='hidden' name='submit' value='submit' />";
//Submit button
echo "<input type='submit' value='Submit'><br><br>";
echo "<input type='button' name='cancel' value='Cancel' onclick='window.location='ViewWaitingList.html'' /><br><br>";
//Closes form
echo "</form>";
/////////////////////////////////////////////////////////////////
?>
$id=$\u GET['id'];
//从所选客户端ID等于客户端ID的客户端中选择
$stmt=$dbh->prepare(“从客户端选择*,其中客户端id=:id”);
$stmt->bindParam(':id',$id);
$stmt->execute();
$row=$stmt->fetch();
回显“客户端ID:”$行['client_id'];
回声“
”;
echo“客户端名称:”$行['first_name']。" " . $行[‘姓氏’];
回声“
”;
///////////////////////////////////////////////////////////////
//为房间id创建一个表单
回声“;
//创建下拉框以显示当前的空闲房间
回声“选择一个房间:”;
$sql=“从文件室选择*”;
$sql.=“哪里的房间空闲=1”;
$stmt=$dbh->query($sql);
回声“;
而($row=$stmt->fetch(PDO::fetch\U ASSOC)){
回显“$row['room_id'”;
}//关闭下拉框
回声“
”;
//入住日期
回音“入住日期:”;
回声“
”;
回声“;
回声“;
//提交按钮
回声“
”;
回声“
”;
//关闭窗体
回声“;
/////////////////////////////////////////////////////////////////
?>
一些MoveIn2.php代码:
<?php
require("dbconnect.php");
//CLIENT
$id = $_POST['id'];
//UPDATES client's to 1/Yes to say that they're now an active client in JRH,
//where the selected client's ID is equal to :id
$stmt = $dbh->prepare("UPDATE client SET active = 1 WHERE client_id=:id");
$stmt->bindParam(':id', $id);
$stmt->execute();
//ROOM
$room_id = $_POST['room_id'];
$stmt = $dbh->prepare("UPDATE room SET room_vacant = 0 WHERE room_id = :room_id");
$stmt->bindParam(':room_id', $room_id);
$stmt->execute();
//OCCUPANCY
$id = $_POST['id'];
$room_id = $_POST['room_id'];
$start_date = $_POST['start_date'];
$stmt = $dbh->prepare("INSERT INTO occupancy (occupancy_client_id, occupancy_room_id, start_date) VALUES(:id, :room_id, :start_date)");
$stmt->bindParam(':id', $id);
$stmt->bindParam(':room_id', $room_id);
$stmt->bindParam(':start_date', $start_date);
$stmt->execute();
echo $id;
echo $room_id;
echo $start_date;
?>
您正在使用echo“”代码>如果没有明确说明它应该是POST方法,并且您试图在下一页中传递POST数组,那么表单默认为GET,而GET将以静默方式失败
更改:
echo "<form action='MoveIn2.php'>";
echo”“;
到
echo”“;
添加到文件的顶部,这将有助于查找错误
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
您不应该对没有看到错误感到惊讶:您没有在寻找错误。检查您对MySQLI的调用是否认为您已指示Apache将MoveIn1.html
作为PHP运行?如果没有,您需要将其重命名为MoveIn1.php
,否则该代码将无法运行。@HoboSapiens我已经看过了,什么都没有up@Fred-ii-yofred,MoveIn1.html中的所有php内容都在html标记/文件中的php标记中,但我只提取了一小段代码并将其放入here@Fred-是的,它能工作!!再次感谢弗雷德:)(把它作为一个答案贴出来,这样我就可以打勾了),谢谢你关注我的问题,顺便说一句,我相信我会有更多的问题在路上哈哈;)再次感谢弗雷德!真不敢相信我是一个多么愚蠢的人,太多次我的代码都因为这样愚蠢的错误而失败了。@Jack,不客气,Jack。我也在那条路上,所以我把帮助转交给你。我们都必须从某个地方开始。干杯;-)确切地说,我(希望)九月份将在大学学习计算机科学,我等不及了
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code