Almacenamiento y consulta de imágenes con php y mysql

Virginia
20 de Mayo del 2005
Hola!!! Quisiera saber quién puede ayudarme a resolver el siguiente problema: estoy crenado una web con varias fotos y quisiera que estas se cargaran dinámicamente desde la base de datos, cuando consulto una foto esta se muestra sin problemas, el problema se presenta cuando la consulta sobre la bd y pido q solo se muestren todas las fotos q cumplen con un determinado criterio... Alguien sabe cómo hacerlo???

Jes?arrillo
20 de Mayo del 2005
Hola!!

Checa esta liga ahi viene en forma de ejemplo el almacenamiento y extracción de imágenes con MySQL

http://php-mexico.com/index.php?option=com_content&task=view&id=26&Itemid=9

Atte.
Jesús Carrillo C.
http://www.php-mexico.com - Fomentando el OpenSource/PHP

Exsa
20 de Mayo del 2005
Gracias, a todos por su interes.

Zelda Predator
20 de Mayo del 2005
Pués no se si entiendo cual es el problema, si esta en la consulta a la db o en el procedimiento de mostrar las imágenes.

Para acotar los resultados debes utililar where en el query de MySQL e indicar el criterio, y para mostrarlas debes usar un segundo script php que carge las imágenes dentro de un tag html normal.

Te pongo un ejemplo. Suponemos que tenemos una base de datos con una tabla llamada imagenes que contiene 4 campos:
1. ID - un entero autoincrementable (contador)
2. REFERENCIA - un varchar de texto
3. IMAGEN - un blob con las imágenes
4. MIME - un varchar con el tipo de imagen (image/jpg o image/gif o loquesea)

Necesitamos dos scripts php, el primero para consultar la db atendiendo a los criterios, que en nuestro caso seran que REFERENCIA sea igual a "paisaje".
El segundo script será el encargado de mostrar las imágenes una a una dentro del tag html <img scr>.

Vamos a ello:

consulta.php
<?
//conexion a la base de datos
$host="localhost";
$user="eluser";
$pass="password";
$db="db";
$tabla="imagenes";

$conexion=mysql_connect($host,$user,$pass);
mysql_select_db($db,$conexion);

//realizamos la busqueda en la base de datos

$consulta= "SELECT imagen FROM $tabla WHERE referencia = 'paisaje'";
$cad = mysql_db_query($db,$consulta) or die (mysql_error());

//imprimiendo los resultados
echo "<table width=100% align=center border=0 cellspacing=2 bgcolor=#FFFFFF>";

while ($array = mysql_fetch_array($cad))
{
echo "<tr>&nbsp;</tr>";
echo "<tr><td>",$array[REFERENCIA],"</td></tr>";
echo "<tr><td><img src=verblob.php?idfoto=",$array[ID],"</td><tr>";

}


//fin imprimir resultados
echo "</table>";

// Cerramos la conexión a la base
$con=mysql_close($con);
?>

Ahora el fichero verblob.php que es el que carga las imagenes dentro del tag html <img scr>:

verblob.php
<?
/*
* Mostrar una imagen desde blob mysql usando PHP
*/

// Control errores
error_reporting(E_ALL);

//Variables para la conexión a la db
$host="localhost";
$user="eluser";
$pass="password";
$db="db";
$tabla="imagenes";

// Parámetros para recuperar la imagen
# Recuperamos el parámetro GET con el id único de la foto que queremos mostrar
$idfoto = (isset($_GET["idfoto"])) ? $_GET["idfoto"] : exit();


// Recuperamos la foto de la tabla
$sql = "SELECT IMAGEN, MIME FROM $tabla WHERE ID = $idfoto";

# Conexión a la base de datos
$con=mysql_connect($host,$user,$pass);
mysql_select_db($db,$con);

$conn = mysql_query($sql, $con) or die(mysql_error($con));
$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;
?>

Y ya esta. Espero que te sirva




Abre tu mente.Abre tu código.