PHP - Fallo al actualizar

 
Vista:
sin imagen de perfil
Val: 54
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Fallo al actualizar

Publicado por Sergio (112 intervenciones) el 23/03/2020 21:31:01
Buenas noches. Tengo un script CRUD que funciona bien hasta que quiero actualizar. Hay un campo input file. Sino selecciono una imagen, me da error. He intentado todo. Os pondo el código. Está hecho con php y ajax.

Primero el ajax. Pulso un boton de actualizar, se cagan todos los datos en el formulario, incluso he puesto un input type text, que al cargar los datos, sale reflejado el nombre de la imagen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$("#btnActualizar").on('click', function(e) {
    e.preventDefault();
 
    var form = $('#frmnuevoU')[0];
    var data = new FormData(form);
 
    $.ajax({
        url: 'procesos/actualizar.php',
        type: 'post',
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        success: function(r) {
          if (r==1){
            $('#tablaDatatable').load('procesos/tabla.php')
            alertify.success("Actualizado con éxito");
          }else{
            alertify.error("Error al actualizar");
          }
 
        }
 
    });
});

Os pongo el archivo actualizar.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
    require_once "../clases/conexion.php";
    require_once "../clases/crud.php";
    $obj= new crud();
    if (empty($_FILES["imagenUP"]["name"])) {
        $im = $_POST['imagenU'];
        }else{
        $im = $_FILES['imagenUp']['name'];
 
    if (($_FILES["imagenUp"]["type"] == "image/pjpeg")
    || ($_FILES["imagenUp"]["type"] == "image/jpeg")
    || ($_FILES["imagenUp"]["type"] == "image/png")
    || ($_FILES["imagenUp"]["type"] == "image/gif")) {
        if (move_uploaded_file($_FILES["imagenUp"]["tmp_name"], "../images/noticias/".$_FILES['imagenUp']['name'])) {
 
            $datos=array(
                $_POST['tituloU'],
                $_POST['noticiaU'],
                $_POST['fechaU'],
                $_POST['autorU'],
                /*$_FILES['imagenUp']['name'],*/
                $im,
                $_POST['idnoticia'],
                $_POST['imagenU']
     );
 
    }
    }
echo $obj->actualizar($datos);
}
?>
Y por último, la función que actualiza la tabla

1
2
3
4
5
6
7
8
9
10
public function actualizar($datos){
    $obj=new conectar();
    $conexion=$obj->conexion();
    /*unlink('../images/noticias/'.$datos[6]);*/
    $sql = "UPDATE noticias SET titulo='$datos[0]', noticia='$datos[1]', fecha=DATE_FORMAT('$datos[2]','%Y-%m-%d'),
            autor='$datos[3]', imagen='$datos[4]' WHERE idnoticia = '$datos[5]'";
    return mysqli_query($conexion, $sql);
 
 
}

Yo había pensado en preguntar si la variable $_FILES venía vacía. Si viene vacía, pasarle el contenido de la imagen que había anteriormente. Creo que lo estoy haciendo así pero no funciona.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 54
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Fallo al actualizar

Publicado por Sergio (112 intervenciones) el 23/03/2020 22:56:02
Ya lo he solucionado. He preguntado si la variable $_FILES viene vacía o no. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar