使用提交表单更新数据库

时间:2017-01-14 17:17:21

标签: php html mysql database

我一直想弄清楚为什么我的数据库不会更新!我知道我做错了什么,但我不知道出了什么问题!这是我的代码!请帮忙。

        $user_id = (int)$user['id'];
        $editName = $user['full_name'];
        $editEmail = $user['email'];
        $editPermissions = $user['permissions'];

        if(isset($_POST['editUser'])){

        $editName = $_POST['editname'];
        $editEmail = $_POST['editemail'];
        $editPermissions = $_POST['editpermissions'];

            $db->query("UPDATE users SET full_name = '$editName',email = '$editEmail', permissions = '$editPermissions' WHERE id = '$user_id'");

            }

     ?>
        <form action="users.php" method="post">
        <td><input type="text" name="editname" id="editname" class="form-control col-sm-2" value="<?=$editName;?>"></td>
        <td><input type="text" name="editemail" id="editemail" class="form-control col-sm-2" value="<?=$editEmail;?>"></td>
        <td><?=pretty_date($user['join_date']);?></td>
        <td><?=(($user['last_login'] == '0000-00-00 00:00:00')?'never':pretty_date($user['last_login']));?></td>
        <td><input type="text" name="editpermissions" id="editpermissions" class="form-control col-sm-2" 
        value="<?=$editPermissions;?>"></td>    
        <div class="form-group col-md-6 text-right button">
        <a href="users.php" class="btn btn-default">Cancel</a>
        <input type="submit" name="editUser" value="Edit User" class="btn btn-success">
        </div>
        </form>

1 个答案:

答案 0 :(得分:0)

您似乎错过了表单中用户的ID。

添加

<input type="hidden" name="id" value="<?= $user_id ?>" />

将此添加到您的第二个if(){}

$user_id = $_POST['id'];

作为旁注,如果<td>中的<form>不在<tr>且不存在的<tr>中,则不应该使用<table>不在<input>。看看here

接下来,您<label>还没有for(使用id<input type="submit" name="editUser" value="Edit User" class="btn btn-success">属性匹配在一起)。 Look at this

上次,您可以使用<button>元素替换ActiveModelSerializers.logger。当您使用Bootstrap时,您可以找到合适的submit button here

最后,编写代码的方式非常难以理解。 Please read this,将其提交到内存并使用它;)