Foros del Web » Programando para Internet » PHP »

Actualizar foto con PHP en MYSQL

Estas en el tema de Actualizar foto con PHP en MYSQL en el foro de PHP en Foros del Web. Buenas noches, LLevo ya bastante tiempo tratando de resolver este asunto y no le encuentro la vuelta. Tengo un formulario muy sencillo que tiene diferentes ...
  #1 (permalink)  
Antiguo 09/08/2017, 18:59
 
Fecha de Ingreso: enero-2014
Ubicación: USA
Mensajes: 50
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Actualizar foto con PHP en MYSQL

Buenas noches,


LLevo ya bastante tiempo tratando de resolver este asunto y no le encuentro la vuelta. Tengo un formulario muy sencillo que tiene diferentes campos incluidos una imagen. La imagen la guardo en un folder en el servidor mientras la ruta la guardo en la base de datos. Todo eso funciona a la perfeccion. Sin embargo, cuando quiero actualizar la foto con la informacion no me funciona y me desaparece la foto que estaba previanmente. Lo que hago es poblar todos los datos con la consulta a la base de datos, luego hago el envio a un archivo update.php que deberia actualizar los registros que se han modificado incluyendo la foto, pero eso no pasa. Adjunto el formulario que envia los datos al archivo update.php. Si tiene alguna sugerencia les estaré altamente agradecidos.

FORMULARIO


Código PHP:

<?php
session_start
();
if (!
$_SESSION['username']) {
    
header("location:landmarklogin1.html?problem=No ha iniciado sesion");
    exit;
} else {
    
$encabezadodeusuario "Welcome: ".$_SESSION['username'];
}
$encabezadodesalida "<a href='logout.php'>Log out</a>";
$name $_SESSION['name'];

include 
"navbar.php";

?>
<head>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <link rel="stylesheet" href="jquery-ui-1.12.1.custom/jquery-ui.css" />
  <link href="landmarkstyles.css" rel="stylesheet" type="text/css" />
  <script src="jquery-ui-1.12.1.custom/external/jquery/jquery.js"></script>
  <!--Agrega Jquery -->
  <script src="jquery-ui-1.12.1.custom/jquery-ui.min.js"></script>
  <script>
  $(function() {
    $("#membersince").datepicker();
    $("#birthday").datepicker();
  })

  function confirmMessage () {

    return confirm("Are you sure you want to delete this member?");
  }

  </script>

</head>

<body>

  <?php
  
include "conexiondb.php";
  
$path photos;
  if (!isset(
$_POST['update'])) {
      
$id mysqli_real_escape_string($con$_GET['id']);
      
$qry"SELECT * FROM members  WHERE id = '$_GET[id]'";
      
$result mysqli_query($con$qry);
      
$person=$result->fetch_array();
  }
  
?>





  <div class="container-fluid">
    <!--FORMULARIO-->

    <div class="memberentry ">
      <form method="POST" action = "updatemember.php" enctype="multipart/form-data">
        <script>
        $('#birthday', '#membersince').datepicker();
        </script>

        <p>

            <h4 style="text-align:center; color:white; padding-top:20px;">Member Personal Information<h4>
              <img class = "img-responsive memberimage" src= "<?php echo $path.'/'.$person['photo'];?>">
              <input type="hidden" name="id" value="<?php echo $_GET['id'];?>"/>


              <div class = "row">
                <div class = "col-md-12 col-md-offset-5">
                  <input type="hidden" name="size" value="350000">
                  <input type="file" name="image">  <!--name es el nombre de lo que se pasa por el metodo POST -->
                </div>
              </div>



              <p>
                <p>

              <div class="row">
               <div class="form-group col-md-4 col-sm-4">
                <label for = "member"> First Name</label>
                <input type="text" name="name" id = "name" class = "form-control" size = "30" placeholder = "Name" value = "<?php echo $person['name']; ?>" />
              </div>

              <div class="form-group col-md-4 col-sm-4">
                <label for = "address"> Last Name</label>
                <input type="text" name="lastname" class = "form-control" size ="30" placeholder = "Home Address" value = "<?php echo $person['lastname']; ?>"  >
              </div>

              <div class="form-group col-md-4 col-sm-4">
                <label for = "birthday"> Birthday </label>
                <input type="text" name="birthday" class = "form-control" size ="30" placeholder = "Birthday" id = "birthday" value = "<?php echo $person['birthday']; ?>"  >
              </div>

            </div>


            <div class = "row">

              <div class="form-group col-md-4 col-sm-4">
                <label for = "address"> Home address </label>
                <input type="text" name="address" class = "form-control" size ="30" placeholder = "Home Address" value = "<?php echo $person['address']; ?>"  >
              </div>

              <div class = "form-group col-md-4  col-sm-4">
                <label for = "cellphone"> Cellphone </label>
                <input type="text" name="cellphone" id="cellphone" class = "form-control"  placeholder = "Cellphone" value = "<?php echo $person['cellphone']; ?>" >
              </div>

              <div class = "form-group col-md-4 col-sm-4 ">
                <label for = "phone"> Phone </label>
                <input type="text" name="phone" id="phone" class = "form-control"  placeholder = "Phone" value = "<?php echo $person['phone']; ?>"/>
              </div>

            </div>


            <div class = "row">
              <div class = "form-group col-md-4 col-sm-4">
                <label for = "town"> Town </label>
                <input type="text" name="town" class = "form-control"  placeholder = "Town" value = "<?php echo $person['town']; ?>" >
              </div>

              <div class = "form-group col-md-4 col-sm-4">
                <label for = "zipcode"> Zipcode</label>
                <input type="text" name="zip" class = "form-control"  placeholder = "Zip Code" value = "<?php echo $person['zip']; ?>" >
              </div>

              <div class = "form-group col-md-4 col-sm-4 ">
                <label for = "email"> Email </label>
                <input type="text" name="email" size="30" class = "form-control"  placeholder = "Email" value = "<?php echo $person['email']; ?>" >
              </div>
            </div>

            <div class = "row">

            <div class = "form-group col-md-4 col-sm-4">
              <label for = "birthday"> Member Since</label>
              <input type="text" name="membersince" size="30" id="membersince" class = "form-control"  placeholder = "Member Since" value = "<?php echo $person['membersince']; ?>" >
            </div>

            <div class = "form-group col-md-4 col-sm-4">
              <label for = "birthday"> Allergies </label>
              <input type="text" name="allergies" size="30" class = "form-control"  placeholder = "Allergies" value = "<?php echo $person['allergies']; ?>" >
            </div>

            <div class = "form-group col-md-4 col-sm-4">
              <label for = "birthday">Ministry</label>
              <input type="text" name="ministry" size="30" class = "form-control"  placeholder = "Ministry" value = "<?php echo $person['ministry']; ?>" >
            </div>



          </div>

            <div class = "row">
              <div class = "col-md-4 col-sm-4 ">
                <input href= "searchmember.php" type="submit" name="" title="Return to Search" value="Return to search" class = "form-control btn-primary" />
              </div>

              <div class = "col-md-4 col-sm-4 ">
                <input type="submit" name="update" title="Update Register" value="Update Member" class = "form-control btn-warning" />
              </div>


              <div class = "col-md-4 col-sm-4 ">
                <?php echo "<a class = 'form-control btn-danger' onclick = 'return confirmMessage ()' href=\"deletemember.php?id=".$person['id']."\">Delete Member</a> " ?>
              </div>

            </div>

            <script>

            function confirmMessage () {

              return confirm("Are you sure you want to delete this member?");
            }

            </script>
          </div>
        </form>
      </div>
    </div>
  </div>
</body>

ARCHIVO DE ACTUALIZACION

UPDATE.PHP


Código PHP:
<?php
include "conexiondb.php";

       
$photo $_FILES['image'];  // PONER AQUI POST EN
       
$name $_POST['name'];
       
$lastname $_POST['lastname'];
       
$address $_POST['address'];
       
$birthday$_POST['birthday'];
       
$cellphone $_POST['cellphone'];
       
$phone $_POST['phone'];
       
$town $_POST['town'];
       
$zip $_POST['zip'];
       
$email $_POST['email'];
       
$membersince $_POST['membersince'];
       
$ministry $_POST['ministry'];
       
$allergies $_POST['allergies'];
       
$id $_POST['id'];


$photo="photos/".($_FILE['image']); //"photos" es el directorio donde se guardan las fotos //

echo($phone);

$members"UPDATE members
 SET
       photo = '$photo',
       name = '$name',
       lastname = '$lastname',
       address = '$address',
       birthday = '$birthday',
       cellphone = '$cellphone',
       phone = '$phone',
       town = '$town',
       zip = '$zip',
       email = '$email',
       membersince = '$membersince',
       ministry = '$ministry',
       allergies = '$allergies'
 WHERE id = '$id'"
;

mysqli_query($con$members);

header('location: membersearch.php');
  #2 (permalink)  
Antiguo 09/08/2017, 20:54
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Actualizar foto con PHP en MYSQL

Para modificar la foto, deberas subir la nueva de la misma forma que subes la primera...
para borrar la actual, debes ocupar otro procedimiento como por ejemplo: unlink() de php...

Para no complicarte mucho, si existe cambio de foto deberias asignar a la nueva el mismo nombre de la que ya tienes almacenada, puede ser un nombre generico: usuario_{id}, asi te evitas por la foto, modificar la base de datos y solo subes el archivo nuevo, luego de borrar el anterior, queda al mismo nombre.. no necesitas nada mas...

otra cosa, es fijarte en el cache de tu navegador... entra en la web en modo incognito, para firefox: control + shift + P.... para Chrome : control + shitf + N ... y fijate si tampoco en este modo te cambia la imagen tal y como lo tienes ahora, antes de mofidicar el codigo
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 10/08/2017, 08:44
 
Fecha de Ingreso: enero-2014
Ubicación: USA
Mensajes: 50
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Actualizar foto con PHP en MYSQL

Gracias por tu respuesta. Comienzo a trabajar en lo que me dices.

Saludos
  #4 (permalink)  
Antiguo 10/08/2017, 09:16
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Actualizar foto con PHP en MYSQL

Como solo es actualización, osea borra la anterior y pone la nueva, porque no lo hace un poco mas fácil digamos.

Ya tiene el id del row de la foto, primero borre esa row de la DB y haga el unlink de la url que tenia dicha row (obvio antes de borrar la row)

Luego hace el insert de la nueva foto y listo.
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.

Etiquetas: formulario-php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:18.