Como filtrar imágenes visualmente y actualizar status en DB

  • Autor Autor Oliver Hakim
  • Fecha de inicio Fecha de inicio
Oliver Hakim

Oliver Hakim

Beta
Verificación en dos pasos activada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola que tal,

Les explico un poco lo que quiero hacer, a una pagina llegan imágenes via web (como aportaciones), estas se guardan en una base de datos en las columnas imagen, usuario y status, el valor por defecto del status es pendiente y cuando cambia a aprobado entonces se publican en automático.

Antes eran pocas imágenes y se hacia manualmente desde la db, ahora quiero ver como armar un editor visual (sin diseño) para que por medio de un check o un boton pueda cambiar el status de la db a aprobado, llamo editor visual ya que se tiene que ver la imagen para saber si se aprueba o no.

Gracias de antemano por la ayuda.
 
Pues es fácil, solo obtén de la db todas las imágenes que tengan el status pendiente, ya ahí haces un update a las imágenes que quieras que estén publicadas.
 
Como menciona kanikase haz un llamado a la base de datos para mostrar las imagenes en pendiente, lo puedes poner por ejemplo con un checkbox, das clic en todas las aprobadas y las actualizas.

Saludos
 
Como menciona kanikase haz un llamado a la base de datos para mostrar las imagenes en pendiente, lo puedes poner por ejemplo con un checkbox, das clic en todas las aprobadas y las actualizas.

Saludos

PHP:
if ($row["status"] == "pendiente") {
            echo '<div style="float:left;width:70%;"><img src="images/'.$row["imagen"].'" width="200px" /></div>';
            echo '<div style="float:right;width:20%;"><input type="submit" value="aprobado" name="aprobado"></div>';
            if(isset($_POST['aprobado'])){
                $aprobar="UPDATE images SET status = 'aprobado' WHERE id = '$a'";
                if (isset($_POST["aprobado"]))
                {
                    $aprobar="UPDATE images SET status = 'aprobado' WHERE id = '$a'";
                    $result3 = $conexion->query($aprobar);
                }
            }
        }

Estoy en esto, pero no me actualiza, la variable"$a" me saca los ids mediante un for dependiendo del numero de rows que saque anteriormente, lo quiero hacer en la misma pagina si es posible. Gracias de antemano.
 
PHP:
if ($row["status"] == "pendiente") {
            echo '<div style="float:left;width:70%;"><img src="http://forobeta.com/images/'.$row["imagen"].'" width="200px" /></div>';
            echo '<div style="float:right;width:20%;"><input type="submit" value="aprobado" name="aprobado"></div>';
            if(isset($_POST['aprobado'])){
                $aprobar="UPDATE images SET status = 'aprobado' WHERE id = '$a'";
                if (isset($_POST["aprobado"]))
                {
                    $aprobar="UPDATE images SET status = 'aprobado' WHERE id = '$a'";
                    $result3 = $conexion->query($aprobar);
                }
            }
        }

Estoy en esto, pero no me actualiza, la variable"$a" me saca los ids mediante un for dependiendo del numero de rows que saque anteriormente, lo quiero hacer en la misma pagina si es posible. Gracias de antemano.

Mira lo que yo haria es poner cada imagen con un checkbox y con un limite de 10 si son muchos, el checkbox pasarlo como un array en el form.

asi no tengo que ir uno por uno

Saludos
 
Mira lo que yo haria es poner cada imagen con un checkbox y con un limite de 10 si son muchos, el checkbox pasarlo como un array en el form.

asi no tengo que ir uno por uno

Saludos

Me ayudarías con el código o una referencia para hacerlo
 
Con el codigo que tienes se puede hacer, pero tienes que revisar que te lleguen todos los datos

no se por que revisas dos veces isset($_POST['aprobado']

Saludos
 
Con el codigo que tienes se puede hacer, pero tienes que revisar que te lleguen todos los datos

no se por que revisas dos veces isset($_POST['aprobado']

Saludos

Fue error de copiado, ya lo quite eso, pero como saco lo de los checkbox
 
Fue error de copiado, ya lo quite eso, pero como saco lo de los checkbox

Mira este ejemplo!

PHP:
if(isset($_POST['aprobar']) && !empty($_POST['aprobar'])){
	foreach($_POST['aprobar'] as $id){
		$update = 'UPDATE images SET status = "aprobado" WHERE id = '.$id;
		$result3 = $conexion->query($update);
	}
}

$sql = 'SELECT * FROM images WHERE status = "pendiente"';
if(($res = $conexion->query($sql)) && ($res->num_rows > 0)){
	echo '<form action="" method="post">';
    while($row = $res->fetch_array(MYSQLI_ASSOC)){
		echo '<div style="float:left;width:70%;"><img src="images/'.$row['imagen'].'" width="200px"/></div>';
		echo '<div style="float:right;width:20%;"><input type="checkbox" name="aprobar[]" value="'.$row['id'].'"/></div>';
    }
	echo '<input type="submit" value="Aprobar todos!">';
	echo '</form>';
}
 
Última edición:
Mira este ejemplo!

PHP:
if(isset($_POST['aprobar']) && !empty($_POST['aprobar'])){
	foreach($_POST['aprobar'] as $id){
		$update = 'UPDATE images SET status = "aprobado" WHERE id = '.$id;
		$result3 = $conexion->query($update);
	}
}

$sql = 'SELECT * FROM images WHERE status = "pendiente"';
if(($res = $conexion->query($sql)) && ($res->num_rows > 0)){
	echo '<form action="" method="post">';
    while($row = $res->fetch_array(MYSQLI_ASSOC)){
		echo '<div style="float:left;width:70%;"><img src="http://forobeta.com/images/'.$row['imagen'].'" width="200px"/></div>';
		echo '<div style="float:right;width:20%;"><input type="checkbox" name="aprobar[]" value="'.$row['id'].'"/></div>';
    }
	echo '<input type="submit" value="Aprobar todos!">';
	echo '</form>';
}

Me sirvio de maravilla, mi problema era con los $_POST y los isset, tendre que darle una leida a fondo. Agregue tambien otro checkbox para rechazar ya que actualizaba y me aparecian los mismos que quedaban en pendiente, asi con el nuevo checkbox ya no aparecen mas.

Gracias, te debo una [MENTION=1597]YeltsinGraphs[/MENTION] y a todos los que dejaron si comentario.
 
[MENTION=133148]tuitero[/MENTION] que bueno que te funciono man! :encouragement:
 
Atrás
Arriba