Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

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. There is not errors in my code. I can’t find the problem.

My form is like this:
form

My database image:
db

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

My PHP code:

<?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!

>Solution :

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

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

Like above. I hope ur problem fixed. Thanks!

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading