Foros del Web » Programando para Internet » PHP »

Mostrar imagenes de una BD

Estas en el tema de Mostrar imagenes de una BD en el foro de PHP en Foros del Web. hola a todos!! no soy esxperta en php y necesito ayuda!! como muestro una imagen en una pagina web, estoy realizando una consulta y entre ...
  #1 (permalink)  
Antiguo 14/01/2004, 16:23
 
Fecha de Ingreso: septiembre-2003
Ubicación: guadalajara jalisco
Mensajes: 6
Antigüedad: 20 años, 7 meses
Puntos: 0
Mostrar imagenes de una BD

hola a todos!!
no soy esxperta en php y necesito ayuda!! como muestro una imagen en una pagina web, estoy realizando una consulta y entre esos datos vienen 3 fotos y quiero visualizarlas la base de datos es interbase y el campo es tipo blob .. que tengo que hacer???
  #2 (permalink)  
Antiguo 15/01/2004, 07:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio .. tendrías que enviar las cabeceras HTTP adecuadas al formato MIME de esa imagen (¿guardas el formato MIME de la imagen en algún otro campo .. o estás segura que son de X formato todas?).

En su base sería:
muestra_foto.php
Código PHP:
<?
header
("Content-type: el formato MIME que corresponda");
// y tu consulta SQL a tu BD por ese campo de imagen haciendo un "echo" a ese dato de tu BD como si de uno de texto se tratase.
?>
Y la llamada la harías bajo un tag HTML de imagen en otra pàgina donde necesites mostrar esa(s) imagenes (pero no en la "muestra_pagina.php" esa debe ser independiente):

Código PHP:
<img src="muestra_foto.php"
Si dices tener tres campos con imagenes .. tendrás que hacerte un "filtro" (una consulta bajo un parámetro) para que tu "muestra_foto.php" bajo una variable de control sepa que foto ha de mostrar.

muestra_foto.php?foto=1

Y tu muestra foto una consulta tipo

Código PHP:
Switch($_GET['foto']){
case 
"1":
$sql="SELECT foto1 FROM tabla";
break;

case 
"2":
$sql="SELECT foto2 FROM tabla";
break;

//etc...


Y acontinuación .. ejecutas tu consulta a tu Interbase usando la sentencia SQL que se ha seleccionado bajo tu variable (paràmetro) y el juego de switch() que se hace. (no conozco ahora las funciones correspondientes).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 15/01/2004, 09:17
 
Fecha de Ingreso: septiembre-2003
Ubicación: guadalajara jalisco
Mensajes: 6
Antigüedad: 20 años, 7 meses
Puntos: 0
antes que nada gracias por la ayuda, ahora si a ver si entendi ... dejame aclararte que las fotos todas son del mismo tipo de dato (blob) porque yo las guardo en la base por medio de un procedimiento .. entonces lo que queiro hacer es ya tengo el espacio en una tabla en una página web y lo unico que quiero es mostrar esos campos de fotos en donde esta la celda , como si fuera cualquier campo string .. ya me di ha entender .. ?? explicandote esto todavia tengo que poner eso de "header" gracias!!
  #4 (permalink)  
Antiguo 15/01/2004, 10:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El tipo de dato "Blod" no tiene nada que ver con el formato MIME que tengan esos datos .. Ese "dato" (MIME) es el que define si esos datos binarios son: una imagen (de que tipo; jpg, gif... etc) o es un .exe .. o un exell .. etc). En parte .. por la extensión (del nombre del archivo) puedes "deducir" que formato MIME corresponde ..

Por lo demás .. Si, tienes que poner todo eso del header() y también tienes que llamar a tus imagenes con el código aparte similar al que puse para que lo puedas llamar en la "celda" (HTML) que quieras bajo un tag HTML de imagen pero con esas propiedades que te indiqué.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 15/01/2004, 11:01
 
Fecha de Ingreso: septiembre-2003
Ubicación: guadalajara jalisco
Mensajes: 6
Antigüedad: 20 años, 7 meses
Puntos: 0
gracias cluster por tu ayuda .. fijate ya hice un archivo que se llama muestra_foto.php y lo tengo en mi servidor donde esta mi BD y le puse este código:
<?php
header("Content-type: image/jpg");
include("conecta.php");
$linkBD=Conectarse();
$sql = "SELECT PRUEBA FROM VWMAEINTECOS WHERE CFCODCENCO = ".$idcodcenco ;
$query = ibase_query($sql, $linkBD);
$row = ibase_fetch_object($query);
echo $row->PRUEBA;
?>
despues en mi pagina x.html puse la eqtiqueta :
<img src="muestra_foto.php">
ahorita lo estoy probando solo con una foto para ver si funciona y no puedo ver ninguna foto .. me podrias decir que estoy haciendo mal ..??? gracias!!
  #6 (permalink)  
Antiguo 15/01/2004, 11:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El campo "PRUEBA" es el que contiene esa imagen (ese archivo binario) ...

Esa imagen es JPG (según las cabeceras HTTP que indicas .. así debería ser ..)

Has comprobado que la consulta la haces correctamente? (si le quitas el header() .. veras esos datos binarios (caracteres ascii sin "sentido").

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 15/01/2004, 12:06
 
Fecha de Ingreso: septiembre-2003
Ubicación: guadalajara jalisco
Mensajes: 6
Antigüedad: 20 años, 7 meses
Puntos: 0
si en todo lo que preguntas esta bien .. el campo prueba es la foto con el archivo binario, la imagen es jpg y la consulta si me trae ese campo PRUEBA .. y ya le quite el header para ver si ponia los caracteres ascii y no me pone nada !!
ya revisaste mi código anterior .. ?????
a mi se me hace que algo estoy haciendo mal .. porque no me muestra ni siquiera el código ascii ..
lo que te dije que hice un archivo en donde está el código de mostrar foto .. eso esta bien?

y que nada mas en la pagina que quiero que se muestre esa foto pongo el tag de img src solo .. no tengo que poner nada mas ese tag ,en esa página .. no?

gracias!!!
  #8 (permalink)  
Antiguo 15/01/2004, 12:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
en el código de muestra_foto.php .. estás haciendo una consulta "condiconal" bajo el valor de tu variable:

$idcodcenco

Si llamas al códig ese con:
<img src="muestra_foto.php">

como veras . .en ningún momento esa variable tiene valor .. (ni se lo pasas a ese script ..ni lo defines en el ..)

<img src="muestra_foto.php?idcodcenco=1">

Y en el muestra_foto.php recoges esa variable por el metodo GET (si usas PHP 4.1.0 o superior):

Código PHP:
$sql "SELECT PRUEBA FROM VWMAEINTECOS WHERE CFCODCENCO = ".$_GET['idcodcenco'] ; 
Ese "1" sería el ID de uno de tus registros .. (como para probar) .. Luego tendrás que darle ese ID en ese link que se está formando por el tuyo que tengas en tu BD y que obtendras en el mismo código que muestras el resto de datos asociados a ese registro ..

Algo tipo:
Código PHP:
<img src="muestra_foto.php?idcodcenco=<? echo $row->IDCODCENCO ?>">

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 15/01/2004, 12:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Se me olvidó ..

Cuando te hacìa el comentario a quitar el header .. es para que llames a es script muestra_foto.php directo (http://nose/muestra_foto.php) para que veas si funciona o no tu consulta ..

Luego, una vez que compruebes que tu consulta se está ejecutando correctamente tendrás que llamar en tu pagína donde obtienes el resto de datos (campos) de ese registro con ese tag HTML de imagen y de la forma indicada el mi anterior mensaje.



Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 15/01/2004, 13:13
 
Fecha de Ingreso: septiembre-2003
Ubicación: guadalajara jalisco
Mensajes: 6
Antigüedad: 20 años, 7 meses
Puntos: 0
muchas gracias por las respuestas tan rapidas!!! y dejame decirte que ya probe lo de http:// ..../muestra_foto.php y si me mostró código ascii osea que si me trae datos .. ahora ya puse el código fijo .. quedo así .. cambie de campo de la vista por sospechas de que este dañada la foto .. y quedo así ..:

<?php
include("conecta.php");
$linkBD=Conectarse();
header("Content-type: image/jpg");
$sqlfoto = "SELECT CWFOTO1 FROM VWMAEINTECOS WHERE CFCODCENCO =435001";
$queryfoto = ibase_query($sqlfoto, $linkBD);
$rowfoto = ibase_fetch_object($queryfoto);
echo $rowfoto->CWFOTO1;
?>

y en la pagina donde quiero mostrar las fotos: solo la etiqueta <img src="muestra_foto.php">

estoy haciendo algo mal??

gracias de verdad mil gracias por la ayuda!!!!
  #11 (permalink)  
Antiguo 15/01/2004, 13:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues en teoría ya debería funcionar .. si dices que sin el header() . .y ejecutando directamente muestra_foto.php ves ese ascii .. en el tag HTML de img lo deberias ver ..

Probastes tambien a ejecutar muestra_foto.php con el header() (a ver si es problema de html?)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 15/01/2004, 13:40
 
Fecha de Ingreso: septiembre-2003
Ubicación: guadalajara jalisco
Mensajes: 6
Antigüedad: 20 años, 7 meses
Puntos: 0

ya probe con el header y ejecute directamente http:// ... /muestra_foto.php y no muestra la foto te pone un cuadrito como en una página no encontró la ruta de una foto fija .. si me doy a entender???

un cuadrito blanco con una tache roja en el centro, este cuadrito me lo pone tanto ejecutando directamente muestra_foto.php como abriendo la página en donde está el tag img src ...

tu me dices que pruebe ejecutando directamente muestra_foto.php con el header (), se supone que me tiene que mostrar la foto? .. yo ya lo probe .. y no me mostro nada ..

gracias!!
  #13 (permalink)  
Antiguo 15/01/2004, 14:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Se supone que te tendría que mostrar la foto si ejecutas directamente muestra_foro.php .. pero si dices que no ves nada... ya no sé que más recomendarte.

Un saludo y suerte!.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:56.