PHP / MYSQLI - 通过链接使用表单更新数据库

时间:2014-06-04 17:43:36

标签: php mysqli

我的用户管理页面部分出现问题。 基本上,我有一个表格,显示所有当前用户,他们的ID,级别等... 在每行的右边,我有一个EDIT和一个DELETE链接。 在列表下方是一个添加新用户链接。

这是我的管理页面中的相关代码:

        <h2><a>Administrator Control Panel</a></h2>
            <br/><center>           
            <h3>USER LIST</h3>
            <?php
                    // connect to the database
                    include('connect-db.php');

                    // get the records from the database
                    if ($result = $mysqli->query("SELECT * FROM users ORDER BY user_id"))
                    {
                            // display records if there are records to display
                            if ($result->num_rows > 0)
                            {
                                    // display records in a table
                                    echo "<table border='1' cellpadding='10'>";

                                    // set table headers
                                    echo "<tr><th>ID</th><th>Name</th><th>Level</th><th></th><th></th>";

                                    while ($row = $result->fetch_object())
                                    {
                                            // set up a row for each record
                                            echo "<tr>";
                                            echo "<td>" . $row->user_id . "</td>";
                                            echo "<td>" . $row->user_name . "</td>";
                                            echo "<td>" . $row->user_level . "</td>";
                                            echo "<td><a href='edit.php?id=" . $row->user_id . "'>Edit</a></td>";
                                            echo "<td><a href='delete.php?id=" . $row->user_id . "'>Delete</a></td>";
                                            echo "</tr>";
                                    }

                                    echo "</table>";
                            }
                            // if there are no records in the database, display an alert message
                            else
                            {
                                    echo "No results to display!";
                            }
                    }
                    // show an error if there is an issue with the database query
                    else
                    {
                            echo "Error: " . $mysqli->error;
                    }

                    // close database connection
                    $mysqli->close();

            ?>
            <a href="add.php">Add New User</a></center>
    </div>

这样可以正常工作,您可以看到列出所需ID的列表的编辑链接。 (测试成功)

在我的edit.php上,我的目标是使用一个简单的表单,该表单预先填充了基于ID的用户/信息。 这是我遇到问题的部分。我已经尝试了多种方法,基于这里和网络上的例子,但仍然无法正确。 如果我能得到一些很好的帮助。

以下是我的edit.php页面的代码... 返回页首:

<?php
session_start();
if(!session_is_registered(myusername)){
header("location:index.php");
}
// Database Variables (edit with your own server information)
$server = '**********';
$user = '********';
$pass = '********';
$db = '*********';

 // Connect to Database
$con= new mysqli($server, $user, $pass, $db);

// confirm that the 'id' variable has been set
if (isset($_GET['id']) && is_numeric($_GET['id']))
{
    // get the 'id' variable from the URL
    $id = $_GET['id'];

    // fire mission
    $result = $con->query("SELECT * FROM users WHERE user_id='$id'");
}
else
// if the 'id' variable isn't set, redirect the user
{
echo "ID did not carry over" . mysqli_connect_error();
}
?>

然后在页面正文中向下是表单部分:

<div id="login">        

        <a name="TemplateInfo"></a>             

        <h2><a>Edit User:</a></h2>

        <center>
<form action="update.php" method="post"><BR>
Name: <input type="text" name="Name" value="<?php echo $name; ?>"><BR><BR>
Level: <input type="text" name="Level" value="<?php echo $level; ?>"><BR><BR>
Pass: <input type="text" name="Pass" value="<?php echo $pass; ?>"><BR><BR>
<input type="submit"><BR><BR>
</form><BR><BR><BR>
        </center>

    </div>

我还有另一个表单发布到的页面,名为update.php:

<?php
// Database Variables (edit with your own server information)
$server = '***************';
$user = '**************';
$pass = '***************';
$db = '**************';

//连接数据库     $ con = new mysqli($ server,$ user,$ pass,$ db); //显示错误(如果在实际网站上删除此行) mysqli_report(MYSQLI_REPORT_ERROR);

// escape variables for security
$name = mysqli_real_escape_string($con, $_POST['Name']);
$level = mysqli_real_escape_string($con, $_POST['Level']);
$pass = mysqli_real_escape_string($con, $_POST['Pass']);

$sql1="UPDATE users SET user_name='$name' WHERE user_id='$id'";
$sql2="UPDATE users SET user_level='$level' WHERE user_id='$id'";
$sql3="UPDATE users SET user_pass='$pass' WHERE user_id='$id'";
if (!mysqli_query($con,$sql)) {
    die('Error: ' . mysqli_error($con));
}
if (!mysqli_query($con,$sq2)) {
    die('Error: ' . mysqli_error($con));
}
if (!mysqli_query($con,$sq3)) {
    die('Error: ' . mysqli_error($con));
}
header("location:admin.php");

mysqli_close($con);

它继续抛出与edit.php页面相关的错误,特别是在注释为&#34; FIRE MISSION&#34;在顶部。您会注意到它甚至还没有完成,因为我完全失去了如何使用$ ID并填写表格框以及要编辑的用户。

我会说直接在上面检查ID变量的部分似乎有用,因为我在IF语句中使用了一些echo来测试它。

我只需要根据给定的ID提供相关的用户信息并将其应用于以下内容: $ name,$ level,$ pass,以便它从表单中发布并更新数据库。

我还应该注意,数据库表称为用户,它包含以下四行: user_id,user_name,user_level,user_pass。 user_id是Primary,并设置为自动递增。该数据库将在INTRANET内部使用,不能从外部访问。

再一次,任何帮助将不胜感激。 提前谢谢!

0 个答案:

没有答案