Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Modificar imagen guardada en mysql para mostarse en navegador con PHP

Estas en el tema de Modificar imagen guardada en mysql para mostarse en navegador con PHP en el foro de Bases de Datos General en Foros del Web. Hola. Lo que pasa es que tengo una base de Datos de mysql en donde tengo guardas imagenes de productos y estoy desarrollando una pagina ...
  #1 (permalink)  
Antiguo 03/11/2010, 15:03
Avatar de sarfimenez  
Fecha de Ingreso: julio-2009
Mensajes: 27
Antigüedad: 14 años, 8 meses
Puntos: 0
Modificar imagen guardada en mysql para mostarse en navegador con PHP

Hola.

Lo que pasa es que tengo una base de Datos de mysql en donde tengo guardas imagenes de productos y estoy desarrollando una pagina con php que me los muestre, hasta ay todo bien, mi problema por que quiero que en la imagen se muestre la informacion del producto que esta guardada en la base de datos.

Mi pregunta seria es esto posible? y de serlo con que funcion puedo acerlo? he estado pensando y puede que lo pueda acer con la funcion imagecreate from jpg pero estoy un poco perdido.

alguien interesado en ayudar?
  #2 (permalink)  
Antiguo 04/11/2010, 02:18
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

No se te entiende ...

Quieres agregar texto a la imagen?

Si es este el caso yo no me complicaria, simplemente agregaria el texto generando el html que muestre el texto, con un div incluso puedes hacer que salga encima de la foto. Y tambien puedes poner texto en el atributo "alt" del tag img....

Quim
  #3 (permalink)  
Antiguo 04/11/2010, 10:42
Avatar de sarfimenez  
Fecha de Ingreso: julio-2009
Mensajes: 27
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Modificar imagen guardada en mysql para mostarse en navegador con PHP

Si basi camente es eso, quiero agregarle texto ala imagen, pero quiero que el texto que se le agregue sea el que tengo guardado en la base de datos.

Es decir, tengo una imagen guardad en un campo blob y al mostrarla en el navegador agregarle ala imagen el texto de la base de datos,ejemplo tengo la imagen de un libro y cuando la muestro en el navegador que parte de la foto me muestre el nombre del libro pero agregado ala imagen. la forma en la que mando llamar la imagen es la siguiente

Código:
<a href="verblob.php?idfoto=920" title="Es un aplique">
y este es el codigo de verblob

Código:
<?php
header("Content-Type: $mime");
// 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 el parámetro GET para elegir entre la miniatura o la foto real
//$tam = (isset($_GET["tam"])) ? $_GET["tam"] : 1;
// Escojemos la foto real o la miniatura según la variable $tam
/*switch($tam) {
        case "1":
                $campo = "foto";break;;
        case "2":
                $campo = "thumb";break;;
        default:
                $campo = "foto";break;;
}*/
// Recuperamos la foto de la tabla
$sql = "SELECT image, mime
                FROM catalogo_productos
                WHERE id_registro = $idfoto";
# Conexión a la base de datos
$link = mysql_connect("localhost", "root", "") or die(mysql_error($link));;
mysql_select_db("catalago", $link) or die(mysql_error($link));
$conn = mysql_query($sql, $link) or die(mysql_error($link));
$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
// Muestra la imagen
echo $imagen;
  #4 (permalink)  
Antiguo 05/11/2010, 03:38
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

Se habia duplicado

Última edición por quimfv; 05/11/2010 a las 04:10
  #5 (permalink)  
Antiguo 05/11/2010, 03:49
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

Etiquetas: modificar, mysql, php, navegadores
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 18:10.