Foros del Web » Programando para Internet » PHP »

Problemas con mostrar imagenes

Estas en el tema de Problemas con mostrar imagenes en el foro de PHP en Foros del Web. Hola, estoy empezando con el php y no hay manera de mostrar imagenes de una base de datos mysql. Me muestra todos los campos pero ...
  #1 (permalink)  
Antiguo 11/05/2009, 07:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Problemas con mostrar imagenes

Hola, estoy empezando con el php y no hay manera de mostrar imagenes de una base de datos mysql. Me muestra todos los campos pero la imagen no.


Base de datos

Hay una tabla llamada makina con sus respectivos campos, y la de imagen:

imagen varchar(100)


En la base de datos implemento varios articulos de prueva, con fotos almacenadas en la carpeta C:\Servidor\WEB\imagenes y lo relleno asi el campo de imagen : C:\Servidor\WEB\imagenes\por.jpg.


id_makina nombre sello precio ano imagen
3 juan cruz makinaria 20 1995C:\Servidor\WEB\imagenes\por.jpg




Codigo PHP



Código PHP:
 <?php
        
include("conex.phtml");

        
$link=Conectarse(); 
        
$result=mysql_query("select * from makina order by nombre ASC",$link); 
        
$myrow=mysql_fetch_array($result);
        
?>

    
        <?php
        
if($myrow)
        { 
  
          echo 
"<table border='1' bordercolor='#000000'";  
              do{ 
                      
                      echo 
"<tr><td width='200'><div align='center'>".$myrow['nombre']."</div></td>";
                    echo 
"<td width='200'><div align='center'>".$myrow['sello']. "</div></td>"
                     echo 
"<td width='50'><div align='center'>".$myrow['precio']. "<b>€</b></div></td>";
                    echo 
"<td width='50'><div align='center'>".$myrow['ano']."</td></div>"
                    echo 
"<td width='180'><img src=".$myrow['imagen']."</tr></td>"
                    
                    }
                            while(
$myrow=mysql_fetch_array($result)); 
                              echo 
"</table>"
                        } 
else{ 
echo 
"No se han encontrado resultados en la busqueda"

mysql_close($conexion); 
?>
Me salen todos los campos pero en la imagen me sale como si no encontrara la imagen. A ver si podeis decirme en donde fallo .
Que es mejor para la imagen sea un varchar o un o un longbloB?
Gracias

Última edición por djfrankie; 11/05/2009 a las 07:16
  #2 (permalink)  
Antiguo 11/05/2009, 07:30
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Problemas con mostrar imagenes

Con las imágenes es mejor poner rutas relativas o URLs. Poner rutas absolutas te va a dar este tipo de problemas.
  #3 (permalink)  
Antiguo 11/05/2009, 07:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problemas con mostrar imagenes

Cita:
Iniciado por Ryo Ver Mensaje
Con las imágenes es mejor poner rutas relativas o URLs. Poner rutas absolutas te va a dar este tipo de problemas.
a que te refieres con rutas relativaS?
es que quiero tener las fotos guardadas en la base de datos o en un carpeta en el servidor. URLS no me sirve.
  #4 (permalink)  
Antiguo 11/05/2009, 07:47
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Problemas con mostrar imagenes

Una ruta relativa es, por ejemplo, si te encuentras en la carpeta "WEB", llamar a la imagen poniendo "imagenes/imagen.jpg". Se llama relativa porque el resultado depende de la carpeta donde te encuentres en ese momento. La carpeta "donde te encuentras" es la carpeta donde se encuentra el fichero desde el cual llamas a la imagen.
  #5 (permalink)  
Antiguo 11/05/2009, 07:53
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Problemas con mostrar imagenes

ademas ni tienes cerrrada la etiqueta de imagen

<td width='180'><img src=".$myrow['imagen']."</tr></td>
  #6 (permalink)  
Antiguo 11/05/2009, 07:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Cita:
Iniciado por Ryo Ver Mensaje
Una ruta relativa es, por ejemplo, si te encuentras en la carpeta "WEB", llamar a la imagen poniendo "imagenes/imagen.jpg". Se llama relativa porque el resultado depende de la carpeta donde te encuentres en ese momento. La carpeta "donde te encuentras" es la carpeta donde se encuentra el fichero desde el cual llamas a la imagen.
Si tambien lo e probado poniendo la ruta :

imagenes/por.jpg en una entrada de la base de datos, teniendo la foto en su respectiva carpeta pero al hacer :

Código PHP:
echo "<td width='180'><img src=".$myrow['imagen']."</td>"
muestra como si no encontrara la imagen. Faltaria algo en este codigo?
gracias

ostia ya esta, tenias razon By_George. Mira que llevo dias mirandomelo, mirando manuales, y de tanto copiar codigo no me dado ni cuenta.
muxas gracias.

Y ya para ultimo que es mejor con ruta relativa o utilizar un longblob?

Última edición por GatorV; 11/05/2009 a las 09:36
  #7 (permalink)  
Antiguo 11/05/2009, 08:02
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problemas con mostrar imagenes

Cita:
$sql = "SELECT $campo, mime
FROM tabla
WHERE idfoto = $idfoto";
# Conexión a la base de datos
$link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));;
mysql_select_db(DBNAME, $link) or die(mysql_error($link));
$conn = mysql_query($sql, $link) or die(mysql_error($link));
$datos = mysql_fetch_array($conn);
// La imagen
$imagen = $datos[0];
// El mime type de la imagen
$mime = $datos[1];
// Gracias a esta cabecera, podemos ver la imagen
// que acabamos de recuperar del campo blob
header("Content-Type: $mime");
// Muestra la imagen
echo $imagen;
saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #8 (permalink)  
Antiguo 11/05/2009, 08:11
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Problemas con mostrar imagenes

Cita:
Iniciado por djfrankie Ver Mensaje
ostia ya esta, tenias razon By_George. Mira que llevo dias mirandomelo, mirando manuales, y de tanto copiar codigo no me dado ni cuenta.
muxas gracias.

Y ya para ultimo que es mejor con ruta relativa o utilizar un longblob?
Yo suelo optar por almacenar las imágenes en ficheros y en la base de datos tengo únicamente la ruta relativa. Pero bueno, depende de gustos ;)
  #9 (permalink)  
Antiguo 11/05/2009, 08:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problemas con mostrar imagenes

Cita:
Iniciado por Ryo Ver Mensaje
Yo suelo optar por almacenar las imágenes en ficheros y en la base de datos tengo únicamente la ruta relativa. Pero bueno, depende de gustos ;)
Si supongo ke va a gustos. Pero por ejemplo si quiero subir una foto mediante web, o algun usuario de la web que quiera subir fotos? mejor utilizar el longlob no?
  #10 (permalink)  
Antiguo 11/05/2009, 08:29
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problemas con mostrar imagenes

Cita:
Yo suelo optar por almacenar las imágenes en ficheros y en la base de datos tengo únicamente la ruta relativa. Pero bueno, depende de gustos ;)
jaj de metiche comparto esta opinion
pues asi mi base de datos no queda tan "gorda" y es mas facil su administracion
y ademas puedo hacer copias de mis imagenes o archivos si asi lo requiero
pero en fin cada programador es un mundo saludines!!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #11 (permalink)  
Antiguo 11/05/2009, 08:34
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Problemas con mostrar imagenes

Cita:
Iniciado por djfrankie Ver Mensaje
Si supongo ke va a gustos. Pero por ejemplo si quiero subir una foto mediante web, o algun usuario de la web que quiera subir fotos? mejor utilizar el longlob no?
Yo utilizo funciones de PHP para subir las imágenes al servidor, obtengo la ruta relativa de la imagen y almaceno esa ruta en la base de datos. Personalmente prefiero que la base de datos haga referencia a los ficheros en lugar de que esta almacene los ficheros en sí.

Yo utilizaría más bien los tipo BLOB para almacenar contenido más privado. Si no quieres que se puedan visualizar determinadas imágenes salvo que tú autorices la consulta puedes almacenar las imágenes en la base de datos y será más seguro que nadie pueda verlas si tú no quieres (por ejemplo, usuarios no registrados o que no pertenezcan a un grupo concreto).

Última edición por Ryo; 11/05/2009 a las 08:39
  #12 (permalink)  
Antiguo 11/05/2009, 08:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problemas con mostrar imagenes

Cita:
Iniciado por Ryo Ver Mensaje
Yo utilizo funciones de PHP para subir las imágenes al servidor, obtengo la ruta relativa de la imagen y almaceno esa ruta en la base de datos. Personalmente prefiero que la base de datos haga referencia a los ficheros en lugar de que esta almacene los ficheros en sí.

Yo utilizaría más bien los tipo BLOB para almacenar contenido más privado. Si no quieres que se puedan visualizar determinadas imágenes salvo que tú autorices la consulta puedes almacenar las imágenes en la base de datos y será más seguro que nadie pueda verlas si tú no quieres (por ejemplo, usuarios no registrados o que no pertenezcan a un grupo concreto).
okss, si me referia a eso, para diferenciar usuarios registrados o no registrados. Bueno en fin aun me queda bastante por aprender , pero bueno muxas gracias, he podido resolver mis primeras dudas.
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 12:57.