Foros del Web » Programando para Internet » Jquery »

jquery.lightbox + MySql

Estas en el tema de jquery.lightbox + MySql en el foro de Jquery en Foros del Web. Hola a todos, Quiero mostrar un visor de imagenes en mi pagina, para ello descargue el jquery.lightbox; pero el jquery.lightbox llama las imagenes desde una ...
  #1 (permalink)  
Antiguo 12/12/2009, 10:20
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Sonrisa jquery.lightbox + MySql

Hola a todos,

Quiero mostrar un visor de imagenes en mi pagina, para ello
descargue el jquery.lightbox; pero el jquery.lightbox llama las imagenes desde una carpeta del servidor, un thumbnails(imagen miniatura), y la imagen normal que es la que se despliega.

Bien; Lo que yo deseo es llamar las imagenes desde la BD MySql;
Inserto las imagenes su original y su thumbnails usando la librería GD de PHP;

Ahora solo necesito mostrarlas en el jquery.lightbox, esta seria mi pregunta.
Pense hacerlo de esta manera pero me da error:

Código PHP:
Ver original
  1. <link rel="stylesheet" type="text/css" href="../style-projects-jquery.css" />    
  2.    
  3.     <!-- Arquivos utilizados pelo jQuery lightBox plugin -->
  4.     <script type="text/javascript" src="../../js/jquery.js"></script>
  5.     <script type="text/javascript" src="../../js/jquery.lightbox-0.5.js"></script>
  6.     <link rel="stylesheet" type="text/css" href="../../css/jquery.lightbox-0.5.css" media="screen" />
  7.     <!-- / fim dos arquivos utilizados pelo jQuery lightBox plugin -->
  8.    
  9.     <!-- Ativando o jQuery lightBox plugin -->
  10.     <script type="text/javascript">
  11.     $(function() {
  12.         $('#gallery a').lightBox();
  13.     });
  14.     </script>
  15.     <style type="text/css">
  16.     /* jQuery lightBox plugin - Gallery style */
  17.     #gallery {
  18.     padding: 10px;
  19.     width: 100px;
  20.     background-image: url(../../photos/fondo.png);
  21.     }
  22.     #gallery ul {
  23.     list-style: none;
  24. }
  25.     #gallery ul li { display: inline; }
  26.     #gallery ul img {
  27.         border: 5px solid #D0CECE;
  28.         border-width: 5px 5px 20px;
  29.     }
  30.     #gallery ul a:hover img {
  31.     border: 5px solid #D3C6DD;
  32.     border-width: 5px 5px 0px;
  33.     color: #ff1;
  34.     background-color: #D0CECE;
  35.     }
  36.     #gallery ul a:hover {
  37.     color: #D0CECE;
  38. }
  39.     </style>
  40. div id="gallery">
  41. <?php
  42. $sql = "SELECT tipo, imagen, miniatura, titulo FROM imagen, pagina
  43.             WHERE pagina.idpagina = imagen.pagina_idpagina AND pagina.pagina_pertenece_idpagina_pertenece = 6";
  44.  
  45.  
  46.   $resultado = EjecutarSQL($sql);
  47.   while(($fila = mysql_fetch_array($resultado))!=false){
  48.   //tipo de archivo a enviar en este caso puede ser JPG, JPEG, PNG, etc
  49.   header('Content-type: '. $fila['tipo']);
  50.   // el titulo del archivo
  51.   header("Content-Disposition: inline; filename=".$fila['titulo']);  
  52.   //  $fila['imagen'] es la imagen contamaño normal
  53. ?>
  54. <p><a href="<?php echo $fila['imagen'];?>" title="<?php echo $fila['titulo'];?>"><img src="<?php echo $fila['miniatura'];?>"width="72" height="72" alt="" /></p>
  55. <?php }// fin while ?>
  56. </div>

El ERROR que me da es el Siguiente:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\laespora\administrador\paginas\viso r_en_q_estamos.php:1) in C:\AppServ\www\sitio\admin\pagina\visor.php on line 50

Gracias.

Última edición por Arie; 14/12/2009 a las 11:17 Razón: Para encontrar una rapidad repuesta
  #2 (permalink)  
Antiguo 14/12/2009, 16:53
Avatar de danico90  
Fecha de Ingreso: febrero-2009
Ubicación: San José, Costa Rica
Mensajes: 148
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: jquery.lightbox + MySql

Ese error pasa porque no se pueden poner headers despues de que algo haya sido enviado por pantalla.
Quitale los headers o colocalos de primero
  #3 (permalink)  
Antiguo 15/12/2009, 09:14
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: jquery.lightbox + MySql

GRACIAS POR TU REPUESTA.
segui tu sugerencia, de quitar los headers, pero me imprime las imagenes en binario.

Código PHP:
Ver original
  1. <div id="gallery">
  2. <?php
  3. $sql = "SELECT tipo, imagen, miniatura, titulo FROM imagen, pagina
  4.             WHERE pagina.idpagina = imagen.pagina_idpagina AND pagina.pagina_pertenece_idpagina_pertenece = 6";
  5.  
  6.  
  7.   $resultado = EjecutarSQL($sql);
  8.   while(($fila = mysql_fetch_array($resultado))!=false){
  9. ?>
  10. <p><a href="<?php echo $fila['imagen'];?>" title="<?php echo $fila['titulo'];?>"><img src="<?php echo $fila['miniatura'];?>" width="72"  height="72" alt="" /></p>
  11. <?php }// fin while ?>
  12. </div>

Algo que probe fue en el archivo visor.php llamo el siguiente mostrar_miniatura.php que contenia la consulta

Código PHP:
Ver original
  1. <?php include_once("funciones.php"); ?>
  2. <?php
  3. $sql = "SELECT tipo, imagen, miniatura, titulo FROM imagen, pagina
  4.             WHERE pagina.idpagina = imagen.pagina_idpagina AND pagina.pagina_pertenece_idpagina_pertenece = 6";
  5.  
  6.   $resultado = EjecutarSQL($sql);
  7.   while(($fila = mysql_fetch_array($resultado))!=false){
  8.   //tipo de archivo a enviar en este caso puede ser JPG, JPEG, PNG, etc
  9.    header('Content-type: '. $fila['tipo']);
  10.   // el titulo del archivo
  11.    header("Content-Disposition: inline; filename=".$fila['titulo']);  
  12.   // se muestra el archivo
  13.    echo $fila['miniatura'];  
  14.   }// fin while
  15. ?>

La llamaba de esta manera en visor.php

Código PHP:
Ver original
  1. <div id="gallery">
  2. <p><a href="mostrar_imagen.php" title="EL TITULO.."><img src="mostrar_miniatura.php" width="72"  height="72" alt="" /></p>
  3. </div>

el archivo mostrar_imagen.php es casi igual al de mostrar_miniatura.php con la diferencia en la parte de:
Código PHP:
Ver original
  1. echo $fila['imagen'];

ME MUESTRA IMAGEN PERO SOLO UNA, EN ESTE CASO LA PRIEMERA DE LA TABLA,
NO ME MUETRA LAS DEMAS.

Fue por esta razón que la consulta la hago en el archivo visor.php para usar el while y poner el TITULO respectivo a cada imagen
Código PHP:
Ver original
  1. <div id="gallery">
  2. <?php
  3. $sql = "SELECT tipo, imagen, miniatura, titulo FROM imagen, pagina
  4.             WHERE pagina.idpagina = imagen.pagina_idpagina AND pagina.pagina_pertenece_idpagina_pertenece = 6";
  5.  
  6.  
  7.   $resultado = EjecutarSQL($sql);
  8.   while(($fila = mysql_fetch_array($resultado))!=false){
  9. ?>
  10. <p><a href="<?php echo $fila['imagen'];?>" title="<?php echo $fila['titulo'];?>"><img src="<?php echo $fila['miniatura'];?>" width="72"  height="72" alt="" /></p>
  11. <?php }// fin while ?>
  12. </div>

espero una sugerencia,

Gracias.
  #4 (permalink)  
Antiguo 16/12/2009, 07:40
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: jquery.lightbox + MySql

Creo que no tenias por que borrar los headers, sino publicarlos al tope de la pagina:
Cita:
header('Content-type: '. $fila['tipo']);
// el titulo del archivo
header("Content-Disposition: inline; filename=".$fila['titulo']);
// $fila['imagen'] es la imagen contamaño normal
Yo nunca los declaro con PHP sino con html, dicho sea de paso.
  #5 (permalink)  
Antiguo 16/12/2009, 13:13
Avatar de danico90  
Fecha de Ingreso: febrero-2009
Ubicación: San José, Costa Rica
Mensajes: 148
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: jquery.lightbox + MySql

Esos headers son de un archivo de imagen, por lo que se mostraría una imagen en el navegador, lo que yo hago siempre es usar una sola imagen y uso una función de redimensionar y paso la imagen por parámetro y el width y el height, lo hago como el ultimo ejemplo que colocaste, algo así:

Código PHP:
<?php
$consulta 
mysql_query("select * from tabla");

while(
$item mysq_fetch_array($consulta)) {
?>
           <a href="<?=$item['imagen']?>">
           <img src="redimensionar.php?w=100&h=100&imagen=<?=$item['imagen']?>" title="<?=$item['titulo']?>">
           </a>
<?php
}//fin del while
?>
Puedes ver que el href esta hacia la imagen, por lo tanto el lightbox usara esa y no la redimensionada.

Esta es la funcion de redimesionar que uso, tiene que estar en un documento sola:

Código PHP:
<?php
$anchura
=$_GET['w'];
$hmax=$_GET['h'];
$nombre=basename($_GET['imagen']);
$datos getimagesize($nombre);
if(
$datos[2]==1){$img = @imagecreatefromgif($nombre);}
if(
$datos[2]==2){$img = @imagecreatefromjpeg($nombre);}
if(
$datos[2]==3){$img = @imagecreatefrompng($nombre);}
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);
if(
$altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
$thumb imagecreatetruecolor($anchura,$altura);
imagecopyresampled($thumb$img0000$anchura$altura$datos[0], $datos[1]);
if(
$datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);}
if(
$datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);}
if(
$datos[2]==3){header("Content-type: image/png");imagepng($thumb); }
imagedestroy($thumb);
?>
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 22:34.