Foros del Web » Programando para Internet » PHP »

visualizar imagenes de una carpeta en una tabla

Estas en el tema de visualizar imagenes de una carpeta en una tabla en el foro de PHP en Foros del Web. hola a todos, estoy necesitando cargar ímagenes (360*240 px) de una carpeta (/galeria) en un html, pero que las mismas se muestren en una tabla, ...
  #1 (permalink)  
Antiguo 06/05/2014, 04:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
visualizar imagenes de una carpeta en una tabla

hola a todos, estoy necesitando cargar ímagenes (360*240 px) de una carpeta (/galeria) en un html, pero que las mismas se muestren en una tabla, ordenadas alfabéticamente...
ADEMÁS debajo de la celda que ocupa caga imagen, necesito que se incluya una celda adicional (es para una etiqueta "label", pero es harina de otro costal)

buscando en el foro, encontré el siguiente código, que funciona muy bien (con más de lo que necesito, incluso!):

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>archivos</title> 
</head> 

<body> 
<?php  
// para leer el directorio 
$ruta = "archivos/";  
$filehandle = opendir($ruta);  
while ($file = readdir($filehandle)) { 
    if ($file != "." && $file != ".." ) { 
        $arch=$file; 
        $archi=$arch.'*'.$archi; 
    } 
} 

closedir($filehandle);  



  
// paginando 
$archivosfile=explode("*", $archi); 
$currentpage = $_SERVER['PHP_SELF']; // pagina en la que se encuentra 
$total=(count($archivosfile)-1); 
$maxRows_Blogdenotas = 10;  // cantidad maxima de archivos a mostrar por pagina 
$pageNum_Blogdenotas = 0; 

if (isset($_GET['pag'])) { 
  $pageNum_Blogdenotas = intval($_GET['pag']); 
} 

$startRow_Blogdenotas = $pageNum_Blogdenotas * $maxRows_Blogdenotas; 

if (isset($_GET['pag'])) { 
  $pageNum_Blogdenotas = intval($_GET['pag']); 
} 

$startRow_Blogdenotas = $pageNum_Blogdenotas * $maxRows_Blogdenotas; 
$totalRows_Blogdenotas = $total; 
$totalPages_Blogdenotas = ceil($totalRows_Blogdenotas/$maxRows_Blogdenotas)-1; 
$archivos = array_slice($archivosfile, $startRow_Blogdenotas, $maxRows_Blogdenotas); 

// paginando    

?> 
Total Archivos:&nbsp;<?php echo $total;  ?><br /><br /> 
<table border="0"> 
                    <tr> 
                      <td><?php if ($pageNum_Blogdenotas > 0) { // Show if not first page ?> 
                            <a href="<?php echo $currentpage; ?>?pag=0">Primero</a> 
                            <?php }else{ // Show if not first page ?> 
                            <span class="style1">Primero</span> <?php } ?> </td> 
                      <td><?php if ($pageNum_Blogdenotas > 0) { // Show if not first page ?> 
                            <a href="<?php echo $currentpage; ?>?pag=<?php echo htmlentities($_GET['pag']-1); ?>">Anterior</a> 
                            <?php }else{ // Show if not first page ?> 
                            <span class="style1">Anterior</span> <?php } ?> </td> 
                      <td><?php if ($pageNum_Blogdenotas < $totalPages_Blogdenotas) { // Show if not last page ?> 
                            <a href="<?php echo $currentpage; ?>?pag=<?php echo htmlentities($_GET['pag']+1); ?>">Siguiente</a> 
                            <?php }else{ // Show if not last page ?> 
                            <span class="style1">Siguiente</span> <?php } ?> </td> 
                      <td><?php if ($pageNum_Blogdenotas < $totalPages_Blogdenotas) { // Show if not last page ?> 
                            <a href="<?php echo $currentpage; ?>?pag=<?php echo $totalPages_Blogdenotas ?>">Ultimo</a> 
                            <?php }else{ // Show if not last page ?> 
                            <span class="style1">Ultimo</span> <?php } ?> </td> 
                    </tr> 
                  </table> 
<div>                  Mostrando <?php echo ($startRow_Blogdenotas + 1) ?> a <?php echo min($startRow_Blogdenotas + $maxRows_Blogdenotas, $totalRows_Blogdenotas) ?> de <?php echo $totalRows_Blogdenotas ?></div><br /><br /> 

<?php 
foreach ($archivos as $archivo) {  
echo '<a href="'.$ruta.$archivo.'"><img src="'.$ruta.$archivo.'" style="width:200px;" /></a>'; } 
?> 
</body> 
solo que NO incorpora las imágenes a una tabla, sino que las "tira" en el documento (caen una al lado de la otra)... y sin orden entendible!

podrá alguien darme una mano con esto??
MUCHAS GRACIAS POR ADELANTADO!
=)
  #2 (permalink)  
Antiguo 06/05/2014, 05:10
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: visualizar imagenes de una carpeta en una tabla

Revisa el foreach, y en lugar de volcarlas en un <a>, hazlo en un td. Tendrás que ver cuantos td por cada tr para hacer el cambio de tr.

Vamos anímate a realizar pruebas, puedes conseguirlo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #3 (permalink)  
Antiguo 06/05/2014, 05:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: visualizar imagenes de una carpeta en una tabla

Lo de corto y pego es muy malo. Hay que intentar entender las cosas.

Te paso una solució hecha al vuelo, PUEDE TENER ERRORES, espero que los puedas corregir.

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>archivos</title>
  6. </head>
  7.  
  8. <body>
  9. <?php  
  10. // para leer el directorio
  11. $ruta = "archivos/";  
  12. //$filehandle = opendir($ruta);
  13. $i=0;
  14. //Obtenemos todos los archivos de la ruta (incluso . y ..)
  15. //Si no especificamos el segundo parametro nos los da ordenados.
  16. $archivosfile=scandir($ruta);
  17.  
  18. // paginando
  19. $currentpage = $_SERVER['PHP_SELF']; // pagina en la que se encuentra
  20. $total=(count($archivosfile)-2);
  21. $maxRows_Blogdenotas = 10;  // cantidad maxima de archivos a mostrar por pagina
  22. $pageNum_Blogdenotas = 0;
  23.  
  24.  
  25. if (isset($_GET['pag'])) {
  26.   $pageNum_Blogdenotas = intval($_GET['pag']);
  27. }
  28.  
  29. $startRow_Blogdenotas = $pageNum_Blogdenotas * $maxRows_Blogdenotas;
  30.  
  31. if (isset($_GET['pag'])) {
  32.   $pageNum_Blogdenotas = intval($_GET['pag']);
  33. }
  34.  
  35. $startRow_Blogdenotas = $pageNum_Blogdenotas * $maxRows_Blogdenotas;
  36. $totalRows_Blogdenotas = $total;
  37. $totalPages_Blogdenotas = ceil($totalRows_Blogdenotas/$maxRows_Blogdenotas)-1;
  38. $archivos = array_slice($archivosfile, $startRow_Blogdenotas, $maxRows_Blogdenotas);
  39.  
  40. // paginando    
  41.  
  42. ?>
  43. Total Archivos:&nbsp;<?php echo $total;  ?><br /><br />
  44. <table border="0">
  45.                     <tr>
  46.                       <td><?php if ($pageNum_Blogdenotas > 0) { // Show if not first page ?>
  47.                             <a href="<?php echo $currentpage; ?>?pag=0">Primero</a>
  48.                             <?php }else{ // Show if not first page ?>
  49.                             <span class="style1">Primero</span> <?php } ?> </td>
  50.                       <td><?php if ($pageNum_Blogdenotas > 0) { // Show if not first page ?>
  51.                             <a href="<?php echo $currentpage; ?>?pag=<?php echo htmlentities($_GET['pag']-1); ?>">Anterior</a>
  52.                             <?php }else{ // Show if not first page ?>
  53.                             <span class="style1">Anterior</span> <?php } ?> </td>
  54.                       <td><?php if ($pageNum_Blogdenotas < $totalPages_Blogdenotas) { // Show if not last page ?>
  55.                             <a href="<?php echo $currentpage; ?>?pag=<?php echo htmlentities($_GET['pag']+1); ?>">Siguiente</a>
  56.                             <?php }else{ // Show if not last page ?>
  57.                             <span class="style1">Siguiente</span> <?php } ?> </td>
  58.                       <td><?php if ($pageNum_Blogdenotas < $totalPages_Blogdenotas) { // Show if not last page ?>
  59.                             <a href="<?php echo $currentpage; ?>?pag=<?php echo $totalPages_Blogdenotas ?>">Ultimo</a>
  60.                             <?php }else{ // Show if not last page ?>
  61.                             <span class="style1">Ultimo</span> <?php } ?> </td>
  62.                     </tr>
  63.                   </table>
  64. <div>                  Mostrando <?php echo ($startRow_Blogdenotas + 1) ?> a <?php echo min($startRow_Blogdenotas + $maxRows_Blogdenotas, $totalRows_Blogdenotas) ?> de <?php echo $totalRows_Blogdenotas ?></div><br /><br />
  65. <table border="0">
  66. <tr>
  67.  
  68. <?php
  69. $maxColumns=2; //número de columnas de la tabla
  70.  
  71. //empezamos por 2 para saltarnos . y ..
  72. for ($i=2;$i<count($archivos);$i++) {
  73.     if($i % $maxColumns == 0 && $i!=2) { ?>
  74.     </tr><tr>
  75.     <?php
  76.        //Insertamos fila con pies de foto (nombre del archivo)
  77.        for($j=$maxColumns;$j>0;$j--){ ?>
  78.        <td><?php echo $archivos[$i-$j+1];?></td>
  79.      <?php } ?>
  80.         </tr><tr>
  81.     } ?>
  82.     <td><a href="<?php echo $ruta.$archivos[$i];?>"><img src="<?php echo $ruta.$archivos[$i];?>" style="width:200px;" /></a></td>
  83. <?php }
  84. //Completamos la ultima fila de imagenes hasta % maxColumns=0
  85. if(count($archivos) % $maxColumns != 0){?>
  86.         <td>&nbsp;</td>
  87. <?php  $ii=count($archivos)+1;
  88.    while ($ii % $maxColumns != 0){?>
  89.         <td>&nbsp;</td>
  90. <?php
  91.     $ii++;
  92.     }
  93. }?>
  94.     </tr><tr>
  95. <?php
  96. //Insertamos la ultima fila de pies de foto hasta % maxColumns=0
  97.    for($j=$ii-$maxColumns;$j<$ii;$j++){
  98. ?>
  99.    <td><?php
  100.     if ($j<count($archivos))
  101.     echo $archivos[$j];
  102.     }else{
  103.     echo "&nbsp;";
  104.     }
  105.     ?></td>
  106. <?php } ?>
  107. </tr>
  108. </table>
  109. </body>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #4 (permalink)  
Antiguo 06/05/2014, 09:32
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

a ambos, gracias por responder!!

Quimfv: entiendo tu punto pero sinceramente, se me está escapando el php...

Tu propuesta parece funcionar, pero (como anticipabas) con algún error, que al momento no consigo entender, siquiera!

En principio, veo que busca los nombres de los archivos y en realidad, eso yo ya lo estaba manejando con un script de Alexis88, que me funcionó de mil maravillas!

Pero me está devolviendo el siguiente error:
Parse error: syntax error, unexpected T_ELSE in /home/public_html/_prueba3.html on line 121

que según puedo ver, es la línea 102 del código, como lo pasaste vos:

100. if ($j<count($archivos))
101. echo $archivos[$j];
102. }else{
103. echo "&nbsp;";
}

probé eliminar el ELSE, para ver qué resultado obtenía y ahí es donde PARECE funcionar, ya que devolvió algunas imágenes, pero con un montón de errores entre las imágenes, sus nombres y la posición de los objetos en el documento... por lo que creo que estoy eliminando algo importante, pero que no llego a interpretar!

imagino que es muy de novato lo mio... pero apenas estoy metiéndome con php y se me hace cuesta arriba!

desde ya, gracias por la ayuda!!
  #5 (permalink)  
Antiguo 06/05/2014, 11:33
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: visualizar imagenes de una carpeta en una tabla

Código PHP:
Ver original
  1. if ($j<count($archivos))
  2.     echo $archivos[$j];
  3.     }else{
  4.     echo "&nbsp;";
  5.     }

Creo que falta el { del IF, no se si me equivocó pero como lo veo cerrar abajo }else quizá, se que no son obligatorios pero a lo mejor se te escapo ese detalle. Saludos.

Y para visualizar las imagenes por el orden que quieras, puedes llamarlas si están en una carpeta por medio de su ruta o por un campo id en tu BD.

Prueba insertandolas en los td con etiquetas <img>
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #6 (permalink)  
Antiguo 06/05/2014, 14:37
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

hola HackID1, muchas gracias por tu repuesta.

tengo que admitir que el PHP me supera... creo que me llevaría menos tiempo interpretar ideogramas chinos!! jajajajaaaa


probé incorporando el { del if, según sugeriste... pero no, evidentemente abre en otro lado lo que está cerrando ahí, porque me dió un error de sintaxis (distinto al anterior), pero sigue sin funcionar...


en realidad, probé MUCHAS cosas, que me fueron pareciendo... o que medianamente quise interpretar, pero no consigo hacer lo que necesito =(

espero poder dar con la respuesta!!
gracias por tu ayuda! =)
  #7 (permalink)  
Antiguo 07/05/2014, 13:22
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

bueno... conseguí hacer funcionar TAL CUAL esperaba, el primer código que conseguí!! pero en vez de utilizando tablas (lo que es aún mejor!) armando una composición de DIVs (con "float:left") que finalmente, me devuelve el orden que pretendía!

lo único que me queda por resolver (utilizando el mismo código, que mostraba yo al inicio del tema) es EL ORDEN!! ya que necesito ordenarlas ALFABÉTICAMENTE... y aún después de probar un montón de opciones, no le encuentro la vuelta!!

alguien que me pueda dar una mano con eso??
muchas gracias!
  #8 (permalink)  
Antiguo 07/05/2014, 14:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: visualizar imagenes de una carpeta en una tabla

$archivosfile=scandir($ruta);

Te dara las imagenes ordenadas.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #9 (permalink)  
Antiguo 07/05/2014, 14:12
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

SIIIII!!... gracias quimfv! era lo que necesitaba! y ya me estaba volviendo loco!

ahora encuentro (gracias a que los ordenó alfabéticamente) que está devolviendo 2 valores, como si fueran "archivos" (o imágenes) que estuvieran en el directorio:
.cc/thumbs_prueba/
.cc/

el dominio es uno de prueba del tipo "dominio.cu.cc" y evidentemente, de ahí está sacando el "cc" y "thumbs_prueba/" corresponde al nombre del directorio en el que están las imágenes...
me podrías indicar como "limpiar" ese resultado?? de qué manera lo filtro?

MUCHAS GRACIAS!
  #10 (permalink)  
Antiguo 07/05/2014, 14:12
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

SIIIII!!... gracias quimfv! era lo que necesitaba! y ya me estaba volviendo loco!

ahora encuentro (gracias a que los ordenó alfabéticamente) que está devolviendo 2 valores, como si fueran "archivos" (o imágenes) que estuvieran en el directorio:
.cc/thumbs_prueba/
.cc/

el dominio es uno de prueba del tipo "dominio.cu.cc" y evidentemente, de ahí está sacando el "cc" y "thumbs_prueba/" corresponde al nombre del directorio en el que están las imágenes...
me podrías indicar como "limpiar" ese resultado?? de qué manera lo filtro?

MUCHAS GRACIAS!
  #11 (permalink)  
Antiguo 07/05/2014, 17:22
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

nadie que me pueda dar una mano, con este último detalle que me falta resolver? =(
  #12 (permalink)  
Antiguo 07/05/2014, 18:03
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

ahora veo que también está agregando un elemento (como si fuera un archivo/imágen) ".cc/thumbs/", al final del listado!! AYUDA, PLEASEEE? =(
  #13 (permalink)  
Antiguo 07/05/2014, 18:33
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

bueno... aunque sea como terapia, pero lo agrego... y en vez de seguir hablando solo, lo posteo y quedo menos loco!! jajajajaaa

descubrí que deshaciendo el cambio sugerido por Quimfv, de reemplazar
$archivosfile=explode("*", $archi);
por
$archivosfile=scandir($ruta);

recupero el listado de imágenes SOLAMENTE (es decir, ya no me muestra esos elementos "inventados")

el tema es que automáticamente, pierdo el ordenamiento alfabético, que había conseguido gracias a su sugerencia!!

por lo cual, entiendo que la diferencia está en QUÉ le pido al PHP que me devuelva, con una u otra sentencia... pero no termino de descular las alternativas!

o bien, existe una manera de "filtrar" el resultado de
$archivosfile=scandir($ruta);
o bien, existe una manera de "ordenar" el resultado de
$archivosfile=explode("*", $archi);

a ver si con esto, animo a alguien a ayudarme a resolver esto, que me está quemando la cabeza...
  #14 (permalink)  
Antiguo 08/05/2014, 00:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: visualizar imagenes de una carpeta en una tabla

Manual

http://es1.php.net/manual/en/function.sort.php

http://www.php.net/manual/en/functio...-multisort.php
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #15 (permalink)  
Antiguo 08/05/2014, 01:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

gracias Quim... pero (como te imaginarás) ya estuve revisando esas opciones!
solo que (como ya quedó claro) estoy "arrancando" con el PHP y francamente, me está ganando!

indudablemente, me metí en un saco que me queda grande... y lo que necesito, es alguien que me pudiera dar una mano y me saque del apuro en el que estoy metido, porque la sugerencia de leer el manual nunca puede ser desacertada... pero resulta inútil, cuando uno corre contra el tiempo y las cosas requieren una "comprensión" con la que uno no cuenta y se le escapan de las manos!

de cualquier manera... gracias por tu consejo!!
que seguramente lo tendré en cuenta, una vez resuelva esto... que para mi, es una papa caliente!

saludos,
  #16 (permalink)  
Antiguo 08/05/2014, 02:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: visualizar imagenes de una carpeta en una tabla

Te estoy dando dos enlaces muy concretos del manual, la lectura de los cuales no debe pasar de los 5 minutos, y ambos tienen ejemplos.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #17 (permalink)  
Antiguo 08/05/2014, 02:32
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: visualizar imagenes de una carpeta en una tabla

dale... buenísimo!! gracias!

Etiquetas: imagenes
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 01:24.