简体   繁体   English

PHP 不更新 mysql 数据库

[英]PHP not updating the mysql database

I have a form that user can update their profile details.我有一个表格,用户可以更新他们的个人资料详细信息。 But when the user clicks the update button only two fields are updating.但是当用户单击更新按钮时,只有两个字段正在更新。 I have 6 input fields and only 2 updating.我有 6 个输入字段,只有 2 个更新。 There is not errors in my code.我的代码中没有错误。 I can't find the problem.我找不到问题所在。

My form is like this:我的表格是这样的:
form形式

My database image:我的数据库图像:
db D b

My PHP code:我的PHP代码:

<?php include "includes/header.php" ?>
<?php include "includes/db.php" ?>

<br><br><br><br>
<?php //include "includes/navigation.php" 
?>



<div id="layoutSidenav_content">
    <main>
        <div class="container-fluid px-4">
            <h1 class="mt-4">Profile Settings </h1>

            <?php
            if (isset($_SESSION['username'])) {
                $username = $_SESSION['username'];

                $query = "SELECT * FROM users WHERE username = '{$username}' ";
                $select_user_profile_query = mysqli_query($connection, $query);

                while ($row = mysqli_fetch_array($select_user_profile_query)) {
                    $user_id = $row['user_id'];
                    $username = $row['username'];
                    $user_password = $row['user_password'];
                    $user_firstname = $row['user_firstname'];
                    $user_lastname = $row['user_lastname'];
                    $user_email = $row['user_email'];
                    $user_image = $row['user_image'];
                }
            }

            if (isset($_POST['update_profile'])) {
                $user_firstname = $_POST['user_firstname'];
                $user_lastname = $_POST['user_lastname'];

                $user_image = $_FILES['image']['name'];
                $user_image_temp = $_FILES['image']['tmp_name'];

                $username = $_POST['username'];
                $user_email = $_POST['user_email'];
                $user_password = $_POST['user_password'];

                move_uploaded_file($user_image_temp, "images_users/$user_image");

                if (empty($user_image)) {
                    $query = "SELECT * FROM users WHERE username = '{$username}' ";
                    $select_image = mysqli_query($connection, $query);
                    while ($row = mysqli_fetch_array($select_image)) {
                        $user_image = $row['user_image'];
                    }
                }

                $query = "UPDATE users SET ";
                $query .= "username = '{$username}', ";
                $query .= "user_password = '{$user_password}', ";
                $query .= "user_firstname = '{$user_firstname}', ";
                $query .= "user_lastname = '{$user_lastname}', ";
                $query .= "user_email = '{$user_email}', ";
                $query .= "user_image = '{$user_image}' ";
                $query .= "WHERE username = '{$username}' ";

                $update_post = mysqli_query($connection, $query);
                if(!$update_post) {
                    echo "Failed" . mysqli_error($connection);
                }
            }


            ?>

            <form action="" method="post" enctype="multipart/form-data">
                <div class="row">
                    <div class="col">
                        <div class="form-group">
                            <label for="title">First Name</label>
                            <input value="<?php echo $user_firstname ?>" type="text" name="user_firstname" class="form-control form-control-lg">
                        </div>
                    </div>
                    <div class="col">
                        <div class="form-group">
                            <label for="author">Last Name</label>
                            <input value="<?php echo $user_lastname ?>" type="text" name="user_lastname" class="form-control form-control-lg">
                        </div>
                    </div>
                </div>

                <div class="form-group">
                    <label for="post_status">Username</label>
                    <input value="<?php echo $username ?>" type="text" name="username" class="form-control">
                </div>

                <br>

                <div class="form-group">
                    <label for="post_image">User Image</label>
                    <br>
                    <img width="50" src="images_users/<?php echo $user_image; ?>" alt="image">
                    <br>
                    <br>
                    <input type="file" name="image">
                </div>
                <br>

                <div class="form-group">
                    <label for="post_tags">Email</label>
                    <input value="<?php echo $user_email ?>" type="email" name="user_email" class="form-control">
                </div>

                <br>

                <div class="form-group">
                    <label for="post_tags">password</label>
                    <input autocomplete="off" type="password" name="user_password" class="form-control">
                </div>

                <br>

                <div class="form-group">
                    <input type="submit" value="Update Profile" class="btn btn-primary" name="update_profile">
                </div>

            </form>



            <!-- <form action="" method="post" enctype="multipart/form-data">

                    <div class="form-group">
                        <label for="title">First Name</label>
                        <input value="<?php echo $user_firstname ?>" type="text" name="user_firstname" class="form-control">
                    </div>


                    <br>

                    <div class="form-group">
                        <label for="author">Last Name</label>
                        <input value="<?php echo $user_lastname ?>" type="text" name="user_lastname" class="form-control">
                    </div>

                    <br>

                    <div class="form-group">
                        <label for="post_status">Username</label>
                        <input value="<?php echo $username ?>" type="text" name="username" class="form-control">
                    </div>

                    <br>

                    <div class="form-group">
                        <label for="post_image">User Image</label>
                        <br>
                        <img width="50" src="../images_users/<?php echo $user_image; ?>" alt="image">
                        <br>
                        <br>
                        <input type="file" name="image">
                    </div>
                    <br>

                    <div class="form-group">
                        <label for="post_tags">Email</label>
                        <input value="<?php echo $user_email ?>" type="email" name="user_email" class="form-control">
                    </div>

                    <br>

                    <div class="form-group">
                        <label for="post_tags">password</label>
                        <input autocomplete="off" type="password" name="user_password" class="form-control">
                    </div>

                    <br>

                    <div class="form-group">
                        <input type="submit" value="Update Profile" class="btn btn-primary" name="update_profile">
                    </div>

                </form> -->


        </div>


        <?php include "includes/footer.php" ?>

First name and the last name are updating.名字和姓氏正在更新。 But other fields are not updating.但是其他字段没有更新。

Thanks in advance!提前致谢!

I see the problem on your code.我在您的代码中看到了问题。 You are updating information related to the same username that user input to the username.您正在更新与用户输入到用户名的相同用户名相关的信息。 Instead of checking username in the query, check for user_id不要在查询中检查用户名,而是检查 user_id

$query .= "WHERE user_id = '{$user_id}' ";

Like above.像上面一样。 I hope ur problem fixed.我希望你的问题得到解决。 Thanks!谢谢!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM