Hola tengo una consulta para actualizar la información del usuario pero no hace nada. ¿Como puedo resolver esto? Por favor ayuda.

Aquí está el código html.

<?php
            
        $sql = "SELECT * FROM users ";
        $query = $conn->query($sql);
        $row = $query->fetch_array();
       
            ?>
<form action="account_edit_script.php" method="POST">
                                        
       <div class="form-group">
       <label class="d-flex justify-content-center"><strong>Update Information</strong></label>
             <label>Fullname</label>
             <input type="text" name="user_fullname" value="<?php echo $row['user_fullname']; ?>" class="form-control" placeholder="" required>
                </div>
       <div class="form-group">
             <label>Email</label>
             <input type="email" name="user_email" value="<?php echo $row['user_email']; ?>" class="form-control" placeholder="" required>
             </div>
             <div class="form-group">
             <label>Password</label>
             <input type="password" name="password" class="form-control" placeholder="Enter New/Old Password" required>
       <input type="hidden" name="user_id" value="<?php echo $row['user_id']; ?>">
             </div>
             <input type="submit" name="submitna" value="Update" class="btn btn-success">
              </form>
<button data-dismiss="modal" class="btn btn-primary" type="button">Close</button>

Aquí está la consulta php que escribí.

if(isset($_POST['submitna']))
{
$user_id=$_POST['user_id'];
$user_fullname = $_POST['user_fullname'];
$user_email = $_POST['user_email'];
$password = md5($_POST['password']);


$sql="UPDATE users SET user_fullname=?, user_email=?, password=? WHERE user_id=?";
$stmt=$conn->prepare($sql);
$stmt->bind_param("ssss", $user_fullname, $user_email, $password,$user_id);
if($stmt->execute()){
  echo '<script>alert("Information has been updated")</script>';
  header('location:index.php');
}


}

He estado atascado con este problema durante dos días y no puedo solucionarlo, así que decidí hacer una pregunta aquí. Esperando que me puedas ayudar. ¡Gracias!

-1
user17039215 4 oct. 2021 a las 07:09

2 respuestas

La mejor respuesta

Tu user_id probablemente sea un número entero, por lo que bind_param debería ser

$stmt->bind_param("sssi", $user_fullname, $user_email, $password,$user_id);
1
adam 4 oct. 2021 a las 04:20

No hay mucha información para salir de aquí, pero recomendaría comentar la redirección del encabezado para que pueda depurar más fácilmente su código:

echo '<script>alert("Information has been updated")</script>';

//header('location:index.php');
$stmt->debugDumpParams();

0
Rex Banner 4 oct. 2021 a las 04:26