Foros del Web » Programando para Internet » PHP »

ayuda para mostrar varias imagenes de una misma tabla

Estas en el tema de ayuda para mostrar varias imagenes de una misma tabla en el foro de PHP en Foros del Web. Buenos dias, estoy haciendo un pequeña base de datos con images, la tabla tendria esta estructura... id auto-increment (Primary Key) imatge1 blob imatge1_thumb blob imatge1_mime ...
  #1 (permalink)  
Antiguo 25/08/2008, 04:22
 
Fecha de Ingreso: mayo-2006
Mensajes: 18
Antigüedad: 18 años
Puntos: 0
ayuda para mostrar varias imagenes de una misma tabla

Buenos dias,

estoy haciendo un pequeña base de datos con images, la tabla tendria esta estructura...

id auto-increment (Primary Key)
imatge1 blob
imatge1_thumb blob
imatge1_mime varchar(40)
imatge1_nombre varchar(255)
imagen2 blob
imatge2_thumb blob
imatge2_mime varchar(40)
imatge2_nombre varchar(255)

Lo que quiero es que cuando pase el parámetro id via la url (al estilo http://www.midominio.net/imagen.php?id=4) me muestre las dos imagenes.

Lo he probado con lo siguiente:

Código PHP:
<?php
        error_reporting
(E_ALL);
        
define("DBHOST""localhost");
        
define("DBNAME""MI_BDD");
        
define("DBUSER""usuario");
        
define("DBPASSWORD""contraseña");

        
$id = (isset($_GET["id"])) ? $_GET["id"] : exit();
        
$tam = (isset($_GET["tam"])) ? $_GET["tam"] : 1;

        switch(
$tam) {
                case 
"1":
                        
$campo "imatge1";break;;
                case 
"2":
                        
$campo "imatge1_thumb";break;;
                default:
                        
$campo "imatge1";break;;
        }

        
$sql "SELECT $campo, imatge1_mime FROM propia WHERE id = $id";

        
$link mysql_connect(DBHOSTDBUSERDBPASSWORD) or die(mysql_error($link));;
        
mysql_select_db(DBNAME$link) or die(mysql_error($link));

        
$conn mysql_query($sql$link) or die(mysql_error($link));
        
$datos mysql_fetch_array($conn);

        
$imagen $datos[0];
        
$mime $datos[1];
        
header("Content-Type: $mime");
        echo 
$imagen;

        switch(
$tam) {
                case 
"1":
                        
$campo "imatge2";break;;
                case 
"2":
                        
$campo "imatge2_thumb";break;;
                default:
                        
$campo "imatge2";break;;
        }

        
$sql "SELECT $campo, imatge2_mime FROM propia WHERE id = $id";

        
$link mysql_connect(DBHOSTDBUSERDBPASSWORD) or die(mysql_error($link));;
        
mysql_select_db(DBNAME$link) or die(mysql_error($link));

        
$conn mysql_query($sql$link) or die(mysql_error($link));
        
$datos mysql_fetch_array($conn);

        
$imagen $datos[0];
        
$mime $datos[1];
        
header("Content-Type: $mime");
        echo 
$imagen;
mysql_close();

?>

pero solo me muestra la primera imagen.

si lo invierto...

Código PHP:
<?php
        error_reporting
(E_ALL);
        
define("DBHOST""localhost");
        
define("DBNAME""MI_BDD");
        
define("DBUSER""usuario");
        
define("DBPASSWORD""contraseña");

        
$id = (isset($_GET["id"])) ? $_GET["id"] : exit();
        
$tam = (isset($_GET["tam"])) ? $_GET["tam"] : 1;

        switch(
$tam) {
                case 
"1":
                        
$campo "imatge2";break;;
                case 
"2":
                        
$campo "imatge2_thumb";break;;
                default:
                        
$campo "imatge2";break;;
        }

        
$sql "SELECT $campo, imatge2_mime FROM propia WHERE id = $id";

        
$link mysql_connect(DBHOSTDBUSERDBPASSWORD) or die(mysql_error($link));;
        
mysql_select_db(DBNAME$link) or die(mysql_error($link));

        
$conn mysql_query($sql$link) or die(mysql_error($link));
        
$datos mysql_fetch_array($conn);

        
$imagen $datos[0];
        
$mime $datos[1];
        
header("Content-Type: $mime");
        echo 
$imagen;

        switch(
$tam) {
                case 
"1":
                        
$campo "imatge1";break;;
                case 
"2":
                        
$campo "imatge1_thumb";break;;
                default:
                        
$campo "imatge1";break;;
        }

        
$sql "SELECT $campo, imatge1_mime FROM propia WHERE id = $id";

        
$link mysql_connect(DBHOSTDBUSERDBPASSWORD) or die(mysql_error($link));;
        
mysql_select_db(DBNAME$link) or die(mysql_error($link));

        
$conn mysql_query($sql$link) or die(mysql_error($link));
        
$datos mysql_fetch_array($conn);

        
$imagen $datos[0];
        
$mime $datos[1];
        
header("Content-Type: $mime");
        echo 
$imagen;
mysql_close();

?>

solo me muestra la segunda.

Alguien podria hecharme una mano? Gracias!!!!
  #2 (permalink)  
Antiguo 26/08/2008, 06:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: ayuda para mostrar varias imagenes de una misma tabla

por lo visto sólo extraes a una imagen en la consulta (o imatge1 o imatge2) por lo que sólo se verá una imagen.
  #3 (permalink)  
Antiguo 26/08/2008, 07:50
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: ayuda para mostrar varias imagenes de una misma tabla

ahora que estas aun a tiempo, te doy un mini-consejo que se ha dicho mil veces (busca informacion y veras los problemas que te encontraras a poco que crezca la BBDD).
No uses la base de datos para guardar ficheros! en su lugar, guarda la ruta del fichero, y el propio fichero en un directorio predefinido.

Dicho esto, si aun quieres seguir adelante, no puedes hacerlo como intentas, si envias un header, para un fichero, solo enviaras ese fichero
lo que debes de hacer, es un fichero en el que hagas la consulta pasandole el id y que devuelva la imagen, con header, si quieres que muestre las dos imagenes, llamas al fichero dos veces, uno por etiqueta <img .../>


saludos
  #4 (permalink)  
Antiguo 29/08/2008, 00:33
 
Fecha de Ingreso: mayo-2006
Mensajes: 18
Antigüedad: 18 años
Puntos: 0
Respuesta: ayuda para mostrar varias imagenes de una misma tabla

ilie, por eso repito la consulta y codigo.

DooBie, muchas gracias. Me temia que no podia hacerse, aunque ya no utilizo la BDD para guardar imagenes solo el nombre, subo el fichero y lo llamo via URL.

Gracias por vuestro tiempo.

Saludos!
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 12:25.