Foros del Web » Programando para Internet » PHP »

Imagenes en MYSQL

Estas en el tema de Imagenes en MYSQL en el foro de PHP en Foros del Web. Hola Tengo una bbdd en MySQL con información sobre jugadores de un equipo de futbol. Quiero insertar un campo en el que guarde la Imagen ...
  #1 (permalink)  
Antiguo 22/03/2009, 17:19
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Imagenes en MYSQL

Hola

Tengo una bbdd en MySQL con información sobre jugadores de un equipo de futbol.

Quiero insertar un campo en el que guarde la Imagen de cada uno.

Cómo se almacenan fotos en MYSQL? Qué tipo de campo es y cómo se suben?

GraciaS
  #2 (permalink)  
Antiguo 22/03/2009, 18:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Imagenes en MYSQL

Hola samyb8,

Revisa las FAQs, lo mejor es tener un campo de texto solamente (VARCHAR) y almacenar ahí la ruta.

Saludos.
  #3 (permalink)  
Antiguo 23/03/2009, 01:29
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Imagenes en MYSQL

OK, pasaré a hacerlo con la ruta.

Pero me podéis dar un resumen de cómo hacerlo? O el link adecuado del FAQ?

GraciaS!
  #4 (permalink)  
Antiguo 23/03/2009, 01:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 1
Respuesta: Imagenes en MYSQL

Un manual muy bueno para poner imagenes en mysql:

programacionweb.net/articulos/articulo/?num=76

Otro para hacerlas pequeñas:

programacionweb.net/articulos/articulo/?num=615

Pero si quieres hacerlo en links, simplemente hazlo como si se tratase de otro campo. varchar.
  #5 (permalink)  
Antiguo 23/03/2009, 01:52
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Imagenes en MYSQL

Hasta ahora tengo las imágenes subidas en BLOB a la Mysql, pero al mostrarla me da Valores ASCII en lugar de la imagen.

A qué se debe esto? Este es mi código:

$result = mysql_query("SELECT * FROM datos WHERE Jugador= '".$_GET['Jugador']."'");
$row = mysql_fetch_array($result);
$content = $row['Foto'];
echo "<tr>";
header('Content-type: image/jpg');
echo $content;
echo "<font face=Arial color=#003366 size=2>".$row['Jugador'] . "<br>";
echo "<font face=Arial color=#003366 size=2>".$row['Goles'] . "<br>";
echo "<font face=Arial color=#003366 size=2>".$row['Cualidades'] . "<br>";

Gracias!
  #6 (permalink)  
Antiguo 23/03/2009, 02:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 1
Respuesta: Imagenes en MYSQL

Se debe a que necesitas otro archivo o script aparte para mostrar la imagen-
Código PHP:
<?

$result 
mysql_query("SELECT * FROM datos WHERE Jugador= '".$_GET['Jugador']."'");
$row mysql_fetch_array($result);
$content $row['Foto'];
echo 
"<tr>";
echo 
"<img src='imagen.php?Jugador=$row[Jugador]'>";
echo 
"<font face=Arial color=#003366 size=2>".$row['Jugador'] . "<br>";
echo 
"<font face=Arial color=#003366 size=2>".$row['Goles'] . "<br>";
echo 
"<font face=Arial color=#003366 size=2>".$row['Cualidades'] . "<br>";
?>
Y el que saque la imagen imagen.php:
Código PHP:
<?
$result 
mysql_query("SELECT * FROM datos WHERE Jugador= '".$_GET['Jugador']."'");
$row mysql_fetch_array($result);
$content $row['Foto'];
header('Content-type: image/jpg');
echo 
$content;
?>
  #7 (permalink)  
Antiguo 23/03/2009, 02:11
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Imagenes en MYSQL

Comprendido.

Lo he hecho así y parece que todo va bien, pero la imagen no sale, sino que me sale el recuadro con la X donde debería ir la imagen.

A qué se puede deber? Las imágenes están en la bbdd en BLOB.

Saludos y gracias!
  #8 (permalink)  
Antiguo 23/03/2009, 02:16
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 1
Respuesta: Imagenes en MYSQL

Cita:
Iniciado por samyb8 Ver Mensaje
Comprendido.

Lo he hecho así y parece que todo va bien, pero la imagen no sale, sino que me sale el recuadro con la X donde debería ir la imagen.

A qué se puede deber? Las imágenes están en la bbdd en BLOB.

Saludos y gracias!
Asegurate que el script que muestre la imagen tenga acceso a la base de datos y de que la variable $_GET[Jugador] no tenga espacios. Si los tiene utiliza urlencode y urldecode. Ah y que el formato coincidan, puedes checar mas ampliamente el link que te deje para que lo hagas mas correctamente como el poder subir varios formatos y su correcta entrada de la imagen a la bd y salida.

programacionweb.net/articulos/articulo/?num=76

Perdon el link anterior es viejo, mira el siguiente tuto mas actual:

programacionweb.net/articulos/articulo/?num=224

Última edición por 3du4rd0; 23/03/2009 a las 02:19 Razón: Link equivocado
  #9 (permalink)  
Antiguo 23/03/2009, 02:23
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Imagenes en MYSQL

Lo de los espacios en el Get[jugador] te refieres a los nombres que hay dentro del campo Jugador?

Esos nombres sí tienen espacios.

Cómo se aplica el urlencode y urldecode en un GET?

Mil gracias por tu ayuda!!
  #10 (permalink)  
Antiguo 23/03/2009, 02:31
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 1
Respuesta: Imagenes en MYSQL

Cita:
Iniciado por samyb8 Ver Mensaje
Lo de los espacios en el Get[jugador] te refieres a los nombres que hay dentro del campo Jugador?

Esos nombres sí tienen espacios.

Cómo se aplica el urlencode y urldecode en un GET?

Mil gracias por tu ayuda!!
Se aplican en el script antes de mostrarlo en el html.
urlencode convierte los espacios en + y urldecode los devuelve.
Cada que imprimas los nombres de jugadores para ponerlos en enlaces has esto:
Código PHP:
<? echo"<a href='jugador.php?Jugador=".urlencode($row[Jugador])."'>$row[Jugador]</a>";?>
Para vincularlo desde el get:
Código PHP:
<?
$result 
mysql_query("SELECT * FROM datos WHERE Jugador= '".urldecode($_GET['Jugador'])."'");
$row mysql_fetch_array($result);
$content $row['Foto'];
header('Content-type: image/jpg');
echo 
$content;
?>
Y asi es para cada salida a link y para el que recibe ese link, el de arriba es el ejemplo.

Última edición por 3du4rd0; 23/03/2009 a las 02:32 Razón: coloreo
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 06:11.