PHP - Mostrar imagen de mi base de datos

 
Vista:
sin imagen de perfil

Mostrar imagen de mi base de datos

Publicado por Jorge (4 intervenciones) el 17/01/2017 12:34:44
Buenas, estoy ejecutando esta instrucción para mostrar una imagen guardada en mi servidor mediante un campo en mi base de datos sql que guarda el enlace a la misma:

<a href="<?php echo $imagen?>"target="_blank"> <?php echo "<img src='". $row["imagen"] ."' width='45%'/>"?>

Me muestra la imagen correctamente, tal y como pretendo.

Lo que ocurre es que no todos los registros tienen imagen, por lo que en esos casos, el campo imagen esta en blanco, y lo que hace mi web es mostrar un cuadro de imagen rota.

Hay alguna forma de evitar que esto pase y no mostrar nada cuando no exista imagen asociada??
Se me ocurre hacer un IF que control e si el campo imgen esta vacio y en ese caso no hacer nada.
Hay alguna forma más sencilla o eficiente??

Muchas gracias.
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

Mostrar imagen de mi base de datos

Publicado por Brian (17 intervenciones) el 17/01/2017 13:17:07
Hola, yo lo que haria seria esto:
1
<a href="<?php echo $imagen?>"><img src="<?php echo ($row['imagen']) ? $row['imagen'] : 'no-disponible.jpg'; ?>"></a>
En una sola linea preguntas si tiene la imagenm en caso de que no la tenga deberias tener una imagen fija que diga por ej: Producto no disponible. Y si no te gusta asi, directamente tendrias que preguntar antes de escribir la linea y si no esta no escribas nada, osea no habria imagen.
Saludos
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
sin imagen de perfil

Mostrar imagen de mi base de datos

Publicado por Jorge (4 intervenciones) el 18/01/2017 12:47:09
Esa era mi solucion provisional, poner una imagen en blanco, pero me parecia un poco feo asi que he optado por controlarlo con un IF, si no existe imagen, no se hace nada.

Muchas gracias por la respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar