php - 编辑记录 PHP 表单

标签 php html mysql sql

我目前有这些 PHP 页面,可以让我向数据库添加记录。 (在本例中是其成员)它完美地工作,因为我可以添加、删除和查看。但我不确定如何使编辑(或更新功能正常工作。

这是我的数据库连接代码:

<?php

// Server Info
$server = 'localhost';
$username = 'root';
$password = '';
$database = 'gamgam';

// Connect to database
$connection = new mysqli($server, $username, $password, $database);

?>

这是我的添加代码:

<!DOCTYPE html>
<html>
<head><title>Insert Users</title></head>
<body>
<h2>Insert User Confirmation</h2>

<form action="<?php $_SERVER['PHP_SELF']?>" method="post"/> <br> 
<?php

require_once('connection.php');

echo    "<label for='memberID' >Member ID:</label>";
echo    "<input type='text' name='memberID' id='memberID' />";
echo    "<br /><br />"; 

echo    "<label for='username' >Username:</label>";
echo    "<input type='text' name='username' id='username' />";
echo    "<br /><br />"; 

echo    "<label for='password' >Password:</label>";
echo    "<input type='password' name='password' id='password' />";
echo    "<br /><br />"; 

echo    "<label for='fName' >Firstname:</label>";
echo    "<input type='text' name='fName' id='fName' />";
echo    "<br /><br />"; 

echo    "<label for='lName' >Lastname:</label>";
echo    "<input type='text' name='lName' id='lName'  />";
echo    "<br /><br />"; 

echo    "<label for='address' >Address:</label>";
echo    "<input type='text' name='address' id='address'  />";
echo    "<br /><br />"; 

echo    "<label for='email' >Email:</label>";
echo    "<input type='text' name='email' id='email'  />";
echo    "<br /><br />";

echo    "<input type='submit' name='submit' value='Submit' />";
echo    "<input type='reset' value='Clear' />";
echo    "<br /><br />"; 
?>
</form>
</section>

<p><a href='login.php'>Login</a></p>    

<?php
if(!isset($_POST['submit'])) {  
    echo 'Please Register';
} else {

    $memberID = $_POST['memberID'];
    $username = $_POST['username'];
    $password = $_POST['password'];
    $fName = $_POST['fName'];
    $lName = $_POST['lName'];
    $address = $_POST['address'];
    $email = $_POST['email'];


    $query = "INSERT INTO `members` 
                  (MemberID, Username, Password, FirstName, LastName, 
                   StreetAddress, Email) 
                VALUES ('$memberID', '$username', '$password', '$fName', 
                        '$lName', '$address', '$email')";
        mysqli_query($connection, $query)
        or  die(mysqli_error($connection));

        $rc = mysqli_affected_rows($connection);
        if ($rc==1)   
        {
            echo '<h4>The database has been updated with the following details: </h4> ';
            echo 'MemberID: '.$memberID.'<br />';
            echo 'Username: '.$username.'<br />';
            echo 'Password: '.$password.'<br />';
            echo 'First Name: '.$fName.'<br />';
            echo 'Last Name: '.$lName.'<br />';
            echo 'Address: '.$address.'<br />';
            echo 'Email: '.$email.'<br />';
        } else {    
            echo '<p>The data was not entered into the database this time.</p>';   
        }
    }
?>
</body>
</html>

这是我的查看代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>View Records</title>
</head>
<body>

<table border="1" style="width:100%" >

<?php
/* 
    VIEW.PHP
    Displays all data from 'players' table
*/

    // connect to the database
    include('connection.php');

    // get results from database
    $result = mysqli_query($connection, "SELECT * FROM members") 
        or die(mysqli_error());  

    // loop through results of database query, displaying them in the table
    while($row = mysqli_fetch_array( $result )) {

        // echo out the contents of each row into a table
        echo "<tr>";
        echo '<td>' . $row['MemberID'] . '</td>';
        echo '<td>' . $row['Username'] . '</td>';
        echo '<td>' . $row['Password'] . '</td>';
        echo '<td>' . $row['FirstName'] . '</td>';
        echo '<td>' . $row['StreetAddress'] . '</td>';
        echo '<td>' . $row['Email'] . '</td>';

        echo '<td><a href="edit.php?MemberID=' . $row['MemberID'] . '">Edit</a></td>';
        echo '<td><a href="delete.php?MemberID=' . $row['MemberID'] . '">Delete</a></td>';
        echo "</tr>"; 
    } 

    // close table>
    echo "</table>";
?>
<p><a href="insert_user.php">Add a new record</a></p>

</body>
</html> 

这是删除代码:

<?php

    // Connect to the database
    include('connection.php');

    // Confirm that the 'code' variable has been set
    if (isset($_GET['MemberID']))
    {
        // Get the 'MemberID' variable from the URL
        $MemberID = $_GET['MemberID'];

        // Delete record from database
        if ($stmt = $connection->prepare("DELETE FROM members WHERE MemberID = ? LIMIT 1")) {
            $stmt->bind_param("i",$MemberID);   
            $stmt->execute();
            $stmt->close();

        } else {
            echo "ERROR: could not prepare SQL statement.";
        }
        $connection->close();

        // Redirect user after delete is successful
        header("Location: view.php");
    } else {
    // If the 'code' variable isn't set, redirect the user
        header("Location: view.php");
    }

?>

我已经在线浏览了许多基本的 php 表单模板,试图合并他们所做的事情以实现结果,但没有取得任何成功。需要为我的网站编写哪些代码才能具有编辑数据库中已创建的记录的功能,而无需通过 phpmyadmin。任何帮助表示赞赏。

最佳答案

Edit 就像Add一样,但您需要先读取记录并填充字段值。

add 中的代码开始,执行如下操作:

<?php $MemberID = (int) $_GET['MemberID']; ?>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post"/> <br> 
<input type="hidden" name="MemberID" value="<?php echo $MemberID; ?>"
<?php
require_once('connection.php');
$result = mysqli_query($connection, "SELECT * FROM members where MemberID = $MemberID") or die(mysqli_error());  

// loop through results of database query, displaying them in the table
$row = mysqli_fetch_assoc($result);
extract($row);

echo    "<label for='memberID' >Member ID:</label>";
echo    "$memberID"; // member ID should not be editable
echo    "<br /><br />"; 

echo    "<label for='username' >Username:</label>";
echo    "<input type='text' name='username' id='username' value="$username" />";
echo    "<br /><br />";

PHP 代码将有一个类似的查询

`UPDATE `members` SET `username` = '$username' ...  WHERE `MemberID` = '$MemberID'"

关于php - 编辑记录 PHP 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26238277/

相关文章:

php - 如何在php中自动增加mysql Limit命令

PHP和文件授权

java - 术语 : "Entity Bean" vs. "Data Model"

javascript - div 的明文,但使用 jquery 保留子节点

php - XMLHttpRequest ReadyState 始终未定义

javascript - 为什么我的 jQuery Ajax GET 请求没有收到服务器的响应?

php - 提取与正则表达式组匹配的字符串部分?

Javascript 不写正斜杠

mysql:设计实践

php - 为什么我得到笛卡尔积而不是连接?