Foros del Web » Programando para Internet » PHP »

Imágenes desde base de datos

Estas en el tema de Imágenes desde base de datos en el foro de PHP en Foros del Web. Hola a todos: Soy muy novato Así que espero ser lo bastante claro para que puedan ayudarme Mi problema es este... encontré un codiguín por ...
  #1 (permalink)  
Antiguo 26/06/2003, 02:25
Avatar de Escoffie  
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 14 años, 7 meses
Puntos: 9
Imágenes desde base de datos

Hola a todos:

Soy muy novato Así que espero ser lo bastante claro para que puedan ayudarme

Mi problema es este... encontré un codiguín por ahí para subir archivos a una DB de mySQL. De esas que te pide un campo para el nombre, otro para el tipo y un blob para el binario.

Al recuperar la imagen con otro script, ésta aparece correctamente. Hasta aquí todo bien...

Le hice unos cambios, pues lo que necesito es una forma para añadir registros que pide muchos datos de texto normales, y además 4 fotos. Lo que hice fue hacer una tablota con 4 campos para los nombres de cada foto, 4 para los tipos y 4 blobs para los binarios. Además como 5 más para textos...

Todo se inserta bien en la DB. Hasta aquí todo bien...

Puedo recuperar toda la información de "texto" sin ningún problema. La bronca viene a la hora de querer ver las fotos.

Resulta que o veo una sola foto, o veo los textos, pero no puedo ver nada más.

Si pongo algo así como:
Código PHP:
<?
require("conexion.php");
mysql_select_db("miDB"
        or die(
"No se tiene acceso a la base de datos");

$qry "SELECT tipo1, contenido1, foto1 FROM miTabla WHERE id=$id";
$res mysql_query($qry);
$tipo      mysql_result($res0"tipo1");
$contenido mysql_result($res0"contenido1");
$contenido .=header("Content-type: $tipo");
$contenido .=header("Content-Disposition: ; filename=\"$nombre\""); 
$nombre    mysql_result($res0"foto1");

print 
$contenido
?>
...puedo ver la primera imagen sin ningún problema (y también sin ninguna cosa adicional)

En el momento en el que le meto algún echo "Lo que sea"; o cualquier otra cosa, una tabla HTML, invocar el texto de los otros campos del row o alguna de las otras 3 imágenes, no más no lo muestra...

Siempre y cuando todo eso esté después del print $contenido simplemente no lo muestra, pero, si lo pongo antes del print $contenido me sale un horrendo mensaje que dice que los headers ya han sido enviados.

En resumen... aunque las fotos están bien almacenadas en la DB, no las puedo usar porque de nada me sirve mostrar sólo una foto a la vez... lo que quiero es que se vea toda la información de un producto junto con 4 fotos del mismo.

¿Alguien tiene alguna idea de qué estoy haciendo mal?

Si de algo sirve, me basé en este tutorial: http://www.programacion.com/php/articulo/datos_blob/ para hacer mi formulario de inserción. Insisto, en mi tablita, hay campos para 4 fotos, con sus tipos y nombres, más varios campos para texto.

Desde ya muchas gracias y perdón por lo "rollero". Saludos a todos.
  #2 (permalink)  
Antiguo 26/06/2003, 03:34
Avatar de ProgramacionWeb  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona
Mensajes: 176
Antigüedad: 14 años, 6 meses
Puntos: 2
Este es un problema común, no tienes que poner ningun echo ni HTML ni otra imagen en un mismo archivo.

Lo que tienes que hacer es hacer un archivo con el texto desde el que llames a las imagenes <img src="img1.php">

Pero nunca pongas texto en img1.php pues el navegador no interpreta que finaliza la imagen y empieza texto, sino que hasta el fin del archivo interpreta una sola imagen.
__________________
Foros en los que participo:
  #3 (permalink)  
Antiguo 26/06/2003, 03:52
Avatar de Escoffie  
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 14 años, 7 meses
Puntos: 9
Mil gracias!!!! Funcionó a la perfección.
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 14:08.