Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/03/2012, 07:47
Avatar de charlyalegret
charlyalegret
 
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 7 meses
Puntos: 140
Respuesta: Duda sobre PHP y MySQL: almacenar imagenes y videos.

Hola,

Esto lo puedes abordar de muchas maneras.

Por ejemplo, puedes crear otra tabla con todas las imagenes o videos, donde incluyes urls, descripción y un número o referencia según al artículo al que irá asociado cada imagen. Te será más facil que hacerlo en la misma tabla, ya que cada artículo supongo que tendrá unas cuantas imágenes...

Luego en la página, llamas a las dos tablas y cargas en cada caso el título/texto que corresponda al artículo, y abajo haces una condición para crear una tabla en donde se inserten todas las imágenes que cumplan que la referencia se corresponda al artículo en cuestión. Un ejemplo de cómo lo tengo yo para crear la tabla (en mi caso són de las filas que sean x 3 columnas, y además cada imágen tiene una descripción, precio y demás.):

Código PHP:
Ver original
  1. $query = mysql_query("SELECT * FROM items WHERE sec1 = ".$contingut." ORDER BY orden ASC") or die ("Error, pruebe más tarde"); // llama o la bd, tabla items, y selecciono las entradas donde sec1 (la referencia que relaciona cada imágen con un artículo) se corresponda con el artículo en cuestion
  2. $f=0; // comienza la creación de la tabla
  3. while($fila = mysql_fetch_assoc($query)) {
  4.     if ($f == 0) {echo "<table border=\"0\" cellspacing=\"5px\"><tr>";} // en el primer ciclo, creo la tabla
  5.     $f++;
  6.     echo "<td width=\"210px\" class=\"td\">";
  7.         echo "<a href=\"{$fila["imagen"]}\" rel=\"lightbox[roadtrip]\" title=\"{$fila["$alt"]}\">";
  8.         echo "<img height=\"124px;\" src=\"/p{$fila["imagen"]}\" alt=\"{$fila["$alt"]}\"></a>";
  9.         echo "<br><span class=\"estilo3\">----------------------------------</span>";
  10.     echo "<br><span class=\"estilo5\">{$fila["$texto"]}<br><span class=\"ref\"></span> {$fila["ref"]}, $preu <b>{$fila["preu"]} &euro;</b></span></td>";
  11.         }
  12.     if ($f == 3) { // cada 3 ciclos, cierro la tabla y contador a 0 para que se cree otra
  13.         echo "</tr></table>";
  14.         $f=0;}
  15.     }
  16.     if ($f != 3 and $f != 0) { echo "</tr></table>";} // si se han acabado las imágenes y no había cerrado la tabla, la cierro ahora.


Sobre tu pregunta sobre las imágenes pequeñas o grandes, puedes usar un javascript prefabricado como un lightbox, por la red corren unos cuantos. Si te fijas en el script que te he puesto, las imágenes usan un script de estos.

Además te recomiendo usar algún script php para que las imágenes pequeñas sean eso, imágenes pequeñas y no una simple redimensión de una imágen grande. De esta manera, la carga de la página será infinitamente más rápida.

Puedes usar para ello timthumb.php, un script php también gratuito y que funciona muy bien, si el servidor que tienes te lo permite. También en el ejemplo que te he puesto lo utilizo, por ello verás que la imágen que se muestra (la pequeña) y la imágen a la que se accede con el enlace (la grande) se encuentran alojadas en carpetas diferentes. En realidad es la misma imágen pero gracias al script timthumb, la imágen que se muestra en realidad es una miniaturización automática de la imágen original grande.

Puedes verlo funcionar en mi web, para que no se considere spam, simplemente ves al segundo link de mi firma y de ahí vas a la tienda online y te vas a cualquier sección de artículos.

saludos