Recuperar fotos desde MySQl con PHP en una tabla

D

Tengo una tabla con varios campos(id, nombre , foto..., siendo este último un bojeto OLE)
Hasta ahora he conseguido que con PHP me devuelva una unica foto de una fila en concreto definida por el campo IP.

Lo que necesito, resumiendo, es crear una tabla en la que en una columno me apartezcan los valores del campo [nombre] y en la otra la imagen correspondiente a esa fila.
lo he intentado con un código tal que:

FOTO.PHP
include"../conexion2.php";
$result = mysql_query("SELECT filedata FROM monitores");
$result_array = mysql_fetch_array($result);
header("Content-Type: image/jpeg");
echo $result_array[0];
include"../cerrar_conexion.php";

luego incluyendo img border="0" src="FOTO.PHP" en la página que lo necesito, pero simpre me devuelve la misma imagen, la de la primera fíla.

Alguien tiene un codigo completo para hacer esta tabla que necesito.
GRACIAS DE ANTEMANO,

Dani

Raistlin_TM

tal y como lo tienes solo coges el primer registro de la bd.
puedes hacer algo como
while($result_array=mysql_fetch_array($result))
{
$array[]=$result_array;
}

en $array tendrias todas las fotos y tendrias q seleccionar la de la posición que kieras mostrar.. o tambien dentro del bucle meter toda la tabla e ir mostrando ahi cada registro, tanto el nombre como la foto.

D

Lo siento, debo estar haciendo algo mal, porque con ese código no recupero las imagenes, ¿te importaría ponerme el PHP cpmpleto, para ver en que me estoy equivocando?
GRACIAS

Raistlin_TM

aver si tienes la tabla monitor con los campos imagen y nombre por ejemplo y quieres hacer una tabla en html con todos los q tengas en la bd, podrias hacer algo asi
<?

function mostrarImagen(imagen)
{
$result = mysql_query("SELECT imagen FROM monitores");
$i=0;
while($imagen_array = mysql_fetch_array($result))
{
if($i==$imagen) { $foto=$imagen_array[0]; }
$i++;
}
header("Content-Type: image/jpeg");
echo $foto;
}

$result = mysql_query("SELECT nombre, imagen FROM monitores");
?>
<table>
<?

$i=0;
while($result_array = mysql_fetch_array($result))
{?>
<tr>
<td> <?=echo $result_array['nombre']?> </td>
<td> < img s rc="<?=mostrarImagen($i)?>> </td>
</tr>
<?
$i++;
}?>

he usado lo q tu tenias como foto.php en una función por si lo entiendes así mejor aunq se puede hacer más simple

a la función le pasas como parámetro el numero de registro q estás mostrando y en la función recoges la imagen de ese mismo registro y la muestras. yo la verdad q nunca he usado los campos ole o blob, siempre use un campo con el nombre d la imagen xD.

SeiYa

A ver, el problema está en tu consulta sql

¿Quieres sacar todas las fotos? ¿una sola? ¿la primera, la última? ¿una en particular?

Cuando sepamos eso te contestaremos.

D

GRACIAS A TODOS.
HE estado trasteando y he dado con una solucion, no se si muy ortodoxa.

por un lado he creado POTO.PHP
if(isset($_GET['xid'])){include"../conexion2.php";
$result = mysql_query("SELECT filedata FROM monitores where id=$xid");
$result_array = mysql_fetch_array($result);
header("Content-Type: image/jpeg");
echo $result_array[0];
include"../cerrar_conexion.php";
}

por otro, la página que me mosytrará los resultados,
en ella, dentro del bucle
while($row = mysql_fetch_array ($result))

he añadido: $xfot = "foto.php?xid=$row[id]"
luego, en el lugar de la tabla que lo necesitava, incluyo: <p align=center>

ASUNTO RESUELTO.....

MUCHISIMAS GRACIAS DE TODOS MODOS

D

UNA CORRECION AL POST ANTERIOR:

En el lugar de la tabla donde quiero que aparezca la foto incluyo: img border=0 src=$xfot width=80 height=110

(al publicar el post anterior, no aparecio este código)

GRACIAS DE NUEVO

Usuarios habituales