Foros del Web » Programando para Internet » PHP »

Duda sobre mostrar y no mostrar una imagen en una consulta

Estas en el tema de Duda sobre mostrar y no mostrar una imagen en una consulta en el foro de PHP en Foros del Web. Hola a todos! Quisiera hacerles una pregunta sobre una consulta donde muestra las opciones de colores de un artículo en mi base de datos. Cada ...
  #1 (permalink)  
Antiguo 10/07/2008, 08:23
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Duda sobre mostrar y no mostrar una imagen en una consulta

Hola a todos! Quisiera hacerles una pregunta sobre una consulta donde muestra las opciones de colores de un artículo en mi base de datos.

Cada artículo, ademas de tener su descripcion y demás, tiene 6 columnas en las cuales le corresponden un nombre y un color... a saber:
nombre1 -- color1
nombre2 -- color2
nombre3 -- color3
nombre4 -- color4
nombre5 -- color5
nombre6 -- color6

Realizo la consulta:
Código PHP:
conexion a la base...
$sql "SELECT * FROM articulos WHERE id_articulo = $idarticulo";
$result mysql_query($sql$conexion);

//muestro los resultados

while ($fila mysql_fetch_array($result)) {

    echo 
'<table border="1" width="99%" cellspacing="0" cellpadding="0">';
    echo 
'  <tr>';
    echo 
'    <td height="10">'$fila['nombre1']. '</td>';
    echo 
'    <td height="10"><img src=colores/'$fila['color1']. '></td>';
    echo 
'  </tr>';
    echo 
'  <tr>';
    echo 
'    <td height="10">'$fila['nombre2']. '</td>';
    echo 
'    <td height="10"><img src=colores/'$fila['color2']. '></td>';
    echo 
'  </tr>';
    echo 
'  <tr>';
    echo 
'    <td height="10">'$fila['nombre3']. '</td>';
    echo 
'    <td height="10"><img src=colores/'$fila['color3']. '></td>';
    echo 
'  </tr>';

    echo 
'</table>';


De esta forma, al traer el nombre de la imagen del color, le agrego la ruta colores/ para que traiga la imagen de esa carpeta.
El problema que tengo es que si hay un artículo que tiene los campos colores y nombre vacíos, me aparece la típica imagen con la x, vacía y lo que quisiera hacer es justamente que si no existe, no me aparezca nada.
¿Me podrían decir que me está faltando?

Muchas gracias a todos.
Saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #2 (permalink)  
Antiguo 10/07/2008, 09:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda sobre mostrar y no mostrar una imagen en una consulta

Hola marx-pola,

Prueba usar file_exists, esa función comprueba si existe un fichero o no, y si no existe puedes hacer un condicional con un if, para si existe poner la imagen y si no existe no la muestras.

Saludos.
  #3 (permalink)  
Antiguo 10/07/2008, 11:24
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Duda sobre mostrar y no mostrar una imagen en una consulta

Mmm... encontré un ejemplo e hice esto para probar y no me trae nada:
Código PHP:
$nombre_archivo $fila['color1'];

if (
file_exists($nombre_archivo)) {
    echo 
'<img src=colores/'$fila['color1']. '>';
} else {


Pero esto es solo con una imagen... pero en el caso de más imagenes, ¿cómo hay que hacer? ¿Deben hacerse varios if (file_exists), uno por cada campo?

Acá sí estoy en la lona...

Gracias.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #4 (permalink)  
Antiguo 10/07/2008, 11:30
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Duda sobre mostrar y no mostrar una imagen en una consulta

deberias... por cada campo al q desees hacer esa condicion!!!... a mi manera d ver!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #5 (permalink)  
Antiguo 10/07/2008, 12:45
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Duda sobre mostrar y no mostrar una imagen en una consulta

Debería ser así?

Código PHP:
$nombre_archivo1 $fila['color1'];
$nombre_archivo2 $fila['color2'];
$nombre_archivo3 $fila['color3'];
$nombre_archivo4 $fila['color4'];
$nombre_archivo5 $fila['color5'];
$nombre_archivo6 $fila['color6'];

if (
file_exists($nombre_archivo1)) {
    echo 
'<img src=colores/'$fila['color1']. '>';
if (
file_exists($nombre_archivo2)) {
    echo 
'<img src=colores/'$fila['color2']. '>';
if (
file_exists($nombre_archivo3)) {
    echo 
'<img src=colores/'$fila['color3']. '>';
if (
file_exists($nombre_archivo4)) {
    echo 
'<img src=colores/'$fila['color4']. '>';
if (
file_exists($nombre_archivo5)) {
    echo 
'<img src=colores/'$fila['color5']. '>';
if (
file_exists($nombre_archivo6)) {
    echo 
'<img src=colores/'$fila['color6']. '>';

} else {

// vacio para que no me agregue nada

Mmm... no estoy seguro... ¿puede ser?
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #6 (permalink)  
Antiguo 11/07/2008, 08:59
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Duda sobre mostrar y no mostrar una imagen en una consulta

Sigo sin encontrarle la vuelta... probé con esto:
Código PHP:
while ($fila mysql_fetch_array($result)) {

    echo 
'<table border="1" width="99%" cellspacing="0" cellpadding="0">';
    echo 
'  <tr>';
    echo 
'    <td height="10">'$fila['nombre1']. '</td>';
if (!
file_exists($fila['color1']))
    echo 
'    <td height="10"><img src=colores/'$fila['color1']. '></td>';
    else
    echo 
'    <td height="10"></td>';
    echo 
'  </tr>';
    echo 
'  <tr>';
    echo 
'    <td height="10">'$fila['nombre2']. '</td>';
if (!
file_exists($fila['color2']))
    echo 
'    <td height="10"><img src=colores/'$fila['color2']. '></td>';
    else
    echo 
'    <td height="10"></td>';
    echo 
'  </tr>';
    echo 
'  <tr>';
    echo 
'    <td height="10">'$fila['nombre2']. '</td>';
    echo 
'  </tr>';
    echo 
'</table>';


Y el primero me aparece perfecto, pero el segundo... como el campo está vacío en la base, igual me trae la imagen vacía con la x.

¿Hay alguna manera de hacer para que si el campo color2 esté vacío, no me traiga nada, ni la imagen vacía?

Gracias a todos.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #7 (permalink)  
Antiguo 11/07/2008, 09:25
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Respuesta: Duda sobre mostrar y no mostrar una imagen en una consulta

Listo... ya lo solucioné. En $fila le puse que si encuentra algo, lo traiga desde el directorio, sino, que quede vacío.

Código PHP:
while ($fila mysql_fetch_array($result)) {

    echo 
'<table border="0" width="99%" cellspacing="0" cellpadding="0" class="calibri-14px-BL">';
    echo 
'  <tr>';
if (
$fila['color1'] != "")
    echo 
'    <td height="10"><img src=colores/'$fila['color1']. '></td>';
    else
    echo 
'    <td height="10"></td>';
    echo 
'    <td height="10">'$fila['nombre1']. '</td>';
if (
$fila['color2'] != "")
    echo 
'    <td height="10"><img src=colores/'$fila['color2']. '></td>';
    else
    echo 
'    <td height="10"></td>';
    echo 
'    <td height="10">'$fila['nombre2']. '</td>';
    echo 
'  </tr>';
    echo 
'</table>';


Solucionado.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
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 00:01.