带有插入/更新的html/php/sql表单

带有插入/更新的html/php/sql表单,php,html,mysql,sql,Php,Html,Mysql,Sql,我有一张桌子,上面有一张等候名单上的客户名单,你可以选择将其中一位客户转移到一个空房间 当您选择此客户机时,它会移动到一个名为“MoveIn1.html”的页面上,在该页面上获取该客户机的ID,并使用该ID显示其姓名和ID。它还会显示一个下拉框,显示所有空置的房间,使用户可以选择将客户机移动到哪个房间。然后,用户还可以选择客户入住的日期并提交此信息 提交后,它进入“MoveIn2.php”,在这里它应该将客户的活动状态更新为“1”(aka,yes),将所选房间的空闲房间更新为“0”(aka,no

我有一张桌子,上面有一张等候名单上的客户名单,你可以选择将其中一位客户转移到一个空房间

当您选择此客户机时,它会移动到一个名为“MoveIn1.html”的页面上,在该页面上获取该客户机的ID,并使用该ID显示其姓名和ID。它还会显示一个下拉框,显示所有空置的房间,使用户可以选择将客户机移动到哪个房间。然后,用户还可以选择客户入住的日期并提交此信息

提交后,它进入“MoveIn2.php”,在这里它应该将客户的活动状态更新为“1”(aka,yes),将所选房间的空闲房间更新为“0”(aka,no),并创建/插入新的入住记录,以及客户id(入住客户id)、房间id(入住房间id)和开始日期。我没有收到任何错误,但我的表没有更新,也没有创建占用记录;当回显我携带的变量时,也不会显示任何内容,因此我不确定如何对其进行排序。任何帮助都将不胜感激

一些MoveIn1.html代码:
$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