[英]HTML Form using php doesn't update mysql
當我更改表單中的信息時,該信息應該放在 $_POST 中。 接下來, if (isset($_POST["submit"]))
應該運行查詢以更新 MySQL 中的表。 但是,MySQL 中沒有任何更新。 我假設有一個簡單的修復方法,因為我正在學習這個。
此外,有關如何調試此類問題的任何建議都會有所幫助。 我正在使用記事本++和學校的服務器。
<?php require_once("session.php"); ?>
<?php
require_once("included_functions.php");
new_header("Here is Who's who!", "CRUD/editPeople.php");
$mysqli = db_connection();
if (($output = message()) !== null) {
echo $output;
}
if (isset($_POST["submit"])) {
$ID = $_GET["id"];
// UPDATE query on $ID
$query = "UPDATE people SET ";
$query .= "FirstName = '".$_POST["FirstName"];
$query .= "', LastName = '".$_POST["LastName"];
$query .= "', Birthdate = '".$_POST["Birthdate"];
$query .= "', BirthCity = '".$_POST["BirthCity"];
$query .= "', BirthState = '".$_POST["BirthState"];
$query .= "', Region = '".$_POST["Region"]."' ";
$query .= "WHERE PersonID = {$ID}";
//Output query results and return to readPeople.php
$result = $mysqli->query($query);
if($result) {
$_SESSION["message"] = $_POST["FirstName"]." ".$_POST["LastName"]." has been changed";
} else {
$_SESSION["message"] = "Error! Could not change ".$_POST["FirstName"]." ".$_POST["LastName"];
}
//Once the Edit has been completed (CHANGE button clicked)
//redirect to the readPeople.php webpage
header("Location: readPeople.php");
exit;
} else {
// GET id and create a query to SELECT * on the id
if (isset($_GET["id"]) && $_GET["id"] !== "") {
// Get id
$ID = $mysqli->real_escape_string(trim($_GET['id']));
$query = "SELECT * FROM people WHERE ";
$query .= "PersonID = '".$ID."'";
$result = $mysqli->query($query);
//Process query
if ($result && $result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "<div class='row'>";
echo "<label for='left-label' class='left inline'>";
echo "<h3>".$row["FirstName"]." ".$row["LastName"]."'s Profile</h3>";
// Create form with inputs for each field in people table
echo "<p><form action = 'editPeople.php?id={$ID}' method='post'>";
echo "<p><input type = 'text' name = 'FirstName' value = '".
$row["FirstName"]."'/></p>";
echo "<p><input type = 'text' name = 'LastName' value = '".
$row["LastName"]."'/></p>";
echo "<p><input type = 'text' name = 'Birthdate' value = '".
$row["Birthdate"]."'/></p>";
echo "<p><input type = 'text' name = 'BirthCity' value = '".
$row["BirthCity"]."'/></p>";
echo "<p><input type = 'text' name = 'BirthState' value = '".
$row["BirthState"]."' /></p>";
echo "<p><input type = 'text' name = 'Region' value = '".
$row["Region"]."' /></p>";
echo "<p><input type='submit' value='Update' /></p>";
echo "</form>";
echo "<br /><p>«:<a href='readPeople.php'>Back to Main Page</a>";
echo "</label>";
echo "</div>";
}
//Query failed to exit. Return to readPeople.php and output error
else {
$_SESSION["message"] = "Person could not be found!";
header("Location: readPeople.php");
exit;
}}}
?>
<?php new_footer("Who's Who"); ?>
在您的 HTML 表單中,沒有name="submit"
任何輸入,因此if (isset($_POST["submit"]))
此條件為假。
在提交按鈕中添加name="submit"
echo "<p><input type='submit' name='submit' value='Update' /></p>";
為了調試和查找正在傳遞的內容,我使用了print_r($_POST)
和print_r($_GET)
。
我在大多數使用表單的腳本中使用它來控制傳遞的內容。 但當然只在開發服務器上。
您的按鈕沒有名稱。 將 name="submit" 放在按鈕中。 因此,isset($_POST['SUBMIT']) 不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.