Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/11/2010, 03:49
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Modificar imagen guardada en mysql para mostarse en navegador con PHP

Si eso es lo que me imaginaba.

El problema que tendràs es que este script manda la foto, Content-Type: $mime, no un archivo html.

Para empezar yo te sugeriría no almacenar las imágenes como blob, sino más bien almacenar simplemente un campo char, o varchar, conteniendo el url de la imagen, y la imagen subirla como un archivo aparte.

De esta manera tu base de datos estará optimizada y su mantenimiento será más sencillo.

Fijate en la linea 18 de tu codigo, es una sentencia sql que recupera la foto de la bbdd modificando esa sentencia para que ademas de la foto te traiga otros datos de la base de datos ya tendriamos los datos luego se tendrian que mostrar.

Código PHP:
Ver original
  1. $sql = "SELECT image, producto, precio //aqui puedes agregar los campos que necesites
  2.                FROM catalogo_productos
  3.                WHERE id_registro = $idfoto";

Si en imagen guardas la url a la imagen (p.e. image="imagenes/nombreimagen.jpg" ) luego es muy facil montar un html que muestre todos los datos

Código PHP:
Ver original
  1. <?php
  2. // Parámetros para recuperar la imagen
  3. # Recuperamos el parámetro GET con el id único de la foto que queremos mostrar
  4. $idfoto = (isset($_GET["idfoto"])) ? $_GET["idfoto"] : exit();
  5. // Recuperamos la url de la foto de la tabla y los otros campos
  6. $sql = "SELECT image, producto, precio
  7.                FROM catalogo_productos
  8.                WHERE id_registro = $idfoto";
  9. # Conexión a la base de datos
  10. $link = mysql_connect("localhost", "root", "") or die(mysql_error($link));;
  11. mysql_select_db("catalago", $link) or die(mysql_error($link));
  12. $conn = mysql_query($sql, $link) or die(mysql_error($link));
  13. $datos = mysql_fetch_array($conn);
  14. // La imagen
  15. $imagen = $datos[0];
  16. $producto = $datos[1];
  17. $precio = $datos[2];
  18. //Otros campos
  19. ?>
  20. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  21. <html>
  22. <head>
  23. <title>Tu titulo</title>
  24. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  25. </head>
  26.  
  27. <body>
  28. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  29.   <tr>
  30.     <td><img src="<?=$imagen;?>"></td>
  31.   </tr>
  32.   <tr>
  33.     <td><?=$producto;?><br><?=$precio;></td>
  34.   </tr>
  35. </table>
  36.  
  37. </body>
  38. </html>


Claro esta que las imagenes deben estar en la url indicada, no en la bbdd, en el ejempo es una url relativa, es decir un directorio del mismo servidor.


El navegador del cliente recibirá esto


Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Tu titulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. </head>
  5.  
  6. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  7.   <tr>
  8.     <td><img src="imagenes/nombreimagen.jpg"></td>
  9.   </tr>
  10.   <tr>
  11.     <td>NombreProducto<br>XXXXprecio</td>
  12.   </tr>
  13.  
  14. </body>
  15. </html>

Un html normal que mostrará la foto y todo lo que pongas de más.

Quim