Foros del Web » Programando para Internet » PHP »

Tabla con imagenes

Estas en el tema de Tabla con imagenes en el foro de PHP en Foros del Web. Hola gente, tengo una duda que seguro es bastante basica Tengo que modificar un codigo que nos dieron en clase de PHP, para que muestre ...
  #1 (permalink)  
Antiguo 23/05/2012, 21:41
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 1
Tabla con imagenes

Hola gente, tengo una duda que seguro es bastante basica

Tengo que modificar un codigo que nos dieron en clase de PHP, para que muestre las imagenes que tiene una carpeta, y las muestre en X columnas, siendo X un numero que yo establezca en una variable anteriormente.

Si pongo $columnas=4, tiene que mostrar las, por ejemplo 12 fotos de una carpeta, en una tabla de 3 filas de 4 columnas sin repetirse ninguna.

El codigo es este:

Código PHP:
Ver original
  1. <?php
  2. $contador=0;
  3. $columnas=4;
  4. $tipos=array();
  5. $tipos[]="jpg";
  6. $tipos[]="png";
  7. $tipos[]="gif";
  8. if(is_dir("./notas/")){ //Indica si el nombre de archivo es un directorio
  9.     $dir=opendir("./notas/"); // Abre un gestor de directorio
  10.     while($archivo=readdir($dir)){ //Lee una entrada desde un gestor de directorio
  11.             $piezas=explode(".",$archivo);
  12.             $ext=array_pop($piezas); //extrae y devuelve el último valor del array
  13.             if($archivo!="." and $archivo!=".."){
  14.             if(in_array($ext,$tipos)){ //Comprueba si un valor existe en un array
  15.             $contador++; ?>
  16.             <table border="1">
  17.             <tr>
  18.             <td width="600"><img src="./notas/<?php echo $archivo; ?>" width="600"/></td>
  19.             </tr>
  20.             </table>
  21.         <?php
  22.         }}}
  23.         echo "<hr> Total de archivos: $contador";
  24.         closedir($dir);
  25. }else{
  26.     echo "Error en el directorio";
  27. }
  28. ?>

Realmente no tengo NI IDEA que hacer para que me haga la cantidad de columnas que quiero sin REPETIR las imagenes.

Poniendo un for antes de <td> me hace las columnas que quiero pero me repite las imagenes.
  #2 (permalink)  
Antiguo 23/05/2012, 22:08
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Tabla con imagenes

No le veo la complicación...

Código PHP:
Ver original
  1. $imagenes=array();
  2. $handler = opendir($path);
  3. while($file = readdir($handler)) {
  4.      if ($file != '.' && $file != '..') {
  5.           $imagenes[] = $file;
  6.      }
  7. }
  8.  
  9. $numImg = count($imagenes);
  10. $numCols = 4;
  11. $numFilas = ceil($numImg / $numCols);
  12.  
  13. $tabla='<table>';
  14.  
  15. $idImg = 0;
  16.  
  17. //generamos las filas
  18. for($i=0; $i<$numFilas; $i++) {
  19.      $tabla.='<tr>';
  20.      //generamos las columnas
  21.      for($o=0; $o<$numCols; $o++) {
  22.           $tabla.='<td>'.$imagenes[$idImg].'</td>';
  23.           $idImg++;
  24.      }
  25.      $tabla.='</tr>';
  26. }
  27.  
  28. $tabla.='</table>';
  29.  
  30. echo $tabla;
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 23/05/2012, 22:13
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 1
Respuesta: Tabla con imagenes

Claro pero tengo que hacer una modificacion simple no cambiar por completo el codigo.
  #4 (permalink)  
Antiguo 23/05/2012, 22:45
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Tabla con imagenes

Sinceramente, yo desecharía el código que tienes, ya que no es lo mas optimo, pero bueno, podrías hacer lo siguiente...

Código PHP:
Ver original
  1. <?php
  2. $contador=0;
  3. $columnas=4;
  4. $tipos=array();
  5. $tipos[]="jpg";
  6. $tipos[]="png";
  7. $tipos[]="gif";
  8.  
  9. $numCols = 4;
  10. $cols = 0;
  11. $tabla='<table>';
  12.  
  13. $path = './notas/';
  14. if(is_dir($path)){ //Indica si el nombre de archivo es un directorio
  15.     $dir=opendir($path); // Abre un gestor de directorio
  16.     while($archivo=readdir($dir)){ //Lee una entrada desde un gestor de directorio
  17.         $piezas=explode(".",$archivo);
  18.         $ext=array_pop($piezas); //extrae y devuelve el último valor del array
  19.         if($archivo!="." and $archivo!=".."){
  20.             if(in_array($ext,$tipos)){ //Comprueba si un valor existe en un array
  21.  
  22.                 if ($cols > 0  && $cols < $numCols) {
  23.                     $tabla.='<td>'.$archivo.'</td>';
  24.                     $contador++;
  25.                 }else {
  26.                     if ($cols == 0) {
  27.                         $tabla.='<tr>';
  28.                     }else {
  29.                         $tabla.='</tr>';
  30.                         $cols = 0;
  31.                     }
  32.                 }
  33.  
  34.                 $cols++;
  35.             }
  36.         }
  37.     }
  38.         echo $tabla;
  39.         echo "<hr> Total de archivos: $contador";
  40.         closedir($dir);
  41. }else{
  42.     echo "Error en el directorio";
  43. }

PD: no lo he probado, así que igual y tiene algún error por hay, aunque no hay visibles...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 23/05/2012 a las 22:57
  #5 (permalink)  
Antiguo 23/05/2012, 23:24
Avatar de jmacc  
Fecha de Ingreso: marzo-2007
Ubicación: Mexico
Mensajes: 94
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: Tabla con imagenes

Investiga.. Aqui
__________________
Los bueno Chicos Acaban Primero.
User Linux: #527435
  #6 (permalink)  
Antiguo 24/05/2012, 04:58
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 1
Respuesta: Tabla con imagenes

Cita:
Iniciado por jmacc Ver Mensaje
Investiga.. [URL="http://lmgtfy.com/?q=como+obtener+informacion+de+un+archivo+con+php"]Aqui[/URL]
Al final de que sirve el foro si me dicen que busque en google? Si llegue aca es que no encontre la solucion en otro lado!

Etiquetas: imagenes, tabla, variables
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 08:59.