Foros del Web » Programando para Internet » PHP »

Listando thumbnails (de 5en5 según el id recibido)

Estas en el tema de Listando thumbnails (de 5en5 según el id recibido) en el foro de PHP en Foros del Web. buenassss os explico un poco el problema que tengo a ver si me sabeis dar alguna solución. Tengo en mi base de datos una tabla ...
  #1 (permalink)  
Antiguo 10/12/2005, 06:28
 
Fecha de Ingreso: septiembre-2005
Mensajes: 27
Antigüedad: 18 años, 6 meses
Puntos: 0
Listando thumbnails (de 5en5 según el id recibido)

buenassss os explico un poco el problema que tengo a ver si me sabeis dar alguna solución.

Tengo en mi base de datos una tabla que contiene todos los datos de un producto y 4*3 campos relacionados con el ejemplo propuesto por Cluster, el del almacenamiento de archivos en la db (binario) Estos doce campos contienen la información binaria, el tamaño y el peso de las cuatro fotos (3+1tumbnail) que pongo por cada producto. Hasta aqui ok?

Bueno, ya están todos los datos y las imágenes metididitas y jugando (viciándome) he hecho unos listados muy majetes (parece mentira)

Ahora estoy liado con la página para visualizar las características/imágenes de cada articulo y me gustaría que antes de soltar todo el rollo de las imágenes grandes, nombre del articulo, descripción, precio... saliese un conjunto de 5 miniaturas: echo rápido y mal, el diseño sería algo parecido a esto




Ok, mi problema: tengo un script que devuelve la miniatura de una imagen al pasarle su id, la tabla donde se encuentra, y los campos relacionados con el tipo y la información (que foto miniaturizar).
¿Cómo podría sacar esas cinco miniaturas (id-2,id-1,id,id+1,id+2) aun visualizando la imagen con id=1? (no existe id=id-2 si id=1) ¿habría posibilidad de mostrar una miniatura con un "no hay imagen"?
Este es el script en cuestión:
Código PHP:
<?php
if(isset($_GET['id'])&&($_GET['tabla'])&&($_GET['fotob'])&&($_GET['fotot'])) {

    require (
"conecta.php");
    
$id $_GET['id'];
    
$tabla $_GET['tabla'];
    
$fotob $_GET['fotob'];
    
$fotot $_GET['fotot'];
    
$sql "SELECT $fotob,$fotot FROM $tabla WHERE id_articulo = $id";

    
//Hacemos la consulta y creamos una matriz con los resultados elegidos
    
$consulta mysql_query($sql,$conexion);
    
    
//Mostramos la imagen con su correspondiente cabecera
    
header("Content-type: $fotot");
    
    
$imagen mysql_result($consulta,0,"$fotob");

    
// Generar el thumbnail:

    // Se crea la imagen desde el campo binario de la BD
    
$img imagecreatefromstring($imagen);

    
// Tamaño del Thumbanil (de la imagen a generar ..)
    
$picsize 50;
    
    
// Se obtienen los datos del ancho y alto de la imagen.
    
$new_w imagesx($img);
    
$new_h imagesy($img);

    
// Se calcula la relación alto/ancho
    
$aspect_ratio $new_h $new_w;
    
    
// Se ajusta al nuevo tamaño
    
$new_w $picsize;
    
$new_h abs($new_w $aspect_ratio);

    
// Se crea la mascara de la imagen nueva
    
$dst_img ImageCreateTrueColor($new_w,$new_h);

    
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
     
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));

    
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
    // El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
    
imagejpeg($dst_img,'',100);
    
    
//Liberamos las variables y cerramos la conexion
    
mysql_free_result($consulta);
    
mysql_close($conexion);
}

else{
echo 
"Faltan parametros o las cadenas de introdución son incorrectas";}
?>
Nose, esto se me atraganta: se me ocurrió ofrecer esta alternativa con un "or die(..." cuando hace la consulta si el id no existe pero no se por donde cogerlo. Además, si borro un registro intermedio esto funcionaría mal no?

Vaya rollo que he soltado, a ver si alguien me echa un cable.
Muchas gracias de antemano
  #2 (permalink)  
Antiguo 11/12/2005, 11:10
 
Fecha de Ingreso: septiembre-2005
Mensajes: 27
Antigüedad: 18 años, 6 meses
Puntos: 0
esto... no respondo xq no contesteis sino porque pasa una cosa rarísima..

este hilo lo puse casi justo antes de la actualización, en el foro de php. ahora alli no aparece pero buscándolo lo encuentro en el foro de php. a ver si respondiéndolo resurge, jajaj

edit, reapareció!
q cosa mas rara, weno a ver si alguien me puede echar una mano
graciassss
  #3 (permalink)  
Antiguo 12/12/2005, 12:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
No entendí mucho como o que relación guardan tus imagenes (como las almacenas en tu BD?).. Pero, hazte la idea que la Base de datos (tabla) para imagenes será UNA (la que ya tienes) y tendras que tener otra tabla "producto"? o "imagenes_producto" donde relaciones y clasifiques tus imagenes (la del producto .. y sus +fotos del producto).

Así quedaría todo relacionado y no habría problemas de que en una tabla tengan que ser "correlativos" la imagen "padre" y sus "hijas" ..

De hecho puedes usar otras técnicas tipo "id_pertenece" .. es decir .. un campo más en tu tabla de imagenes que diga de "que otro registro depende" .. tu "id_pertenece" = 0 sería tus imagenes del producto "padre" y las hijas .. las relacionas con este.

Por supuesto .. si sólo tienes una imagen "padre" y X hijas .. es más simple crear una tabla o simples campos en una tabla del "producto" que indiquen algo tipo:

id_producto
id_imagen_principal = 3
ids_imagenes_hijas = 1,45,32,20
descripcion
blablabl
blaba

En fin .. como veras esto es más un problema de "modelo de datos" (y cual usar: tienes várias alternativas) que el hecho "visual" de como presentar tus imagenes o que sean imagenes en este caso (podría ser simple "texto").

Un saludo,
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 04:22.