Foros del Web » Programando para Internet » PHP »

Mostrar imagenes en 4 columnas

Estas en el tema de Mostrar imagenes en 4 columnas en el foro de PHP en Foros del Web. Hola amigos. Tengo un código que me busca unas imagenes y las muestra, pero quisiera mostrarlas de a 4 por columnas y que luego venga ...
  #1 (permalink)  
Antiguo 05/03/2012, 12:27
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Pregunta Mostrar imagenes en 4 columnas

Hola amigos. Tengo un código que me busca unas imagenes y las muestra, pero quisiera mostrarlas de a 4 por columnas y que luego venga la otra fila y se muestren 4 dependiendo de las que esten guardadas. Este es el código que tengo:

Código PHP:
Ver original
  1. $ruta = "images/galerias/"; // Indicar ruta
  2.    $filehandle = opendir($ruta); // Abrir archivos
  3.     while ($file = readdir($filehandle)) {
  4.        if ($file != "." && $file != "..") {
  5.                 $tamanyo = GetImageSize($ruta . $file);
  6.                 echo "    
  7.               <div id=\"borde\">
  8.               <p><img src='$ruta$file' $tamanyo[15]><br></p>\n</div><br>";
  9.            }
  10.         }
  11.     closedir($filehandle); // Fin lectura archivos

No se como decirle al código que cuando llegue la quinta imagen salte a otra linea o fila.

????
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 05/03/2012, 12:36
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Mostrar imagenes en 4 columnas

con un contador:
Código PHP:
Ver original
  1. $col=1;
  2.     while ($file = readdir($filehandle)) {
  3.        if ($file != "." && $file != "..") {
  4.                 $tamanyo = GetImageSize($ruta . $file);
  5.                 echo "    
  6.               <div id=\"borde\">
  7.               <p><img src='$ruta$file' $tamanyo[15]><br></p>\n</div>";
  8.                if($col==4){
  9.                     echo '<br/>';
  10.                     $col=0;
  11.                }
  12.                $col++;
  13.            }
  14.         }
  #3 (permalink)  
Antiguo 05/03/2012, 12:41
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Mostrar imagenes en 4 columnas

ocp001a, gracias por tu atención pero lo probé y no hace nada ???
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 05/03/2012, 12:44
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Mostrar imagenes en 4 columnas

¿A qué te refieres, a que no funciona (ignora las columnbas) o a que deja de funcionar?
  #5 (permalink)  
Antiguo 05/03/2012, 12:48
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Mostrar imagenes en 4 columnas

sigue funcionando pero ignora las columnas
__________________
Caminando con el corazón partío
  #6 (permalink)  
Antiguo 05/03/2012, 12:54
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Mostrar imagenes en 4 columnas

Bueno, quizá sea problema de css, habría que ver si tu <br/> hace o no un salto de linea, o si necesitas colocar más de uno para que se note el salto
  #7 (permalink)  
Antiguo 05/03/2012, 12:59
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Mostrar imagenes en 4 columnas

El problema es que se muestran todas hacia abajo. La idea es tener columnas y filas pero no se como armarlas porque ahora simplemente tengo un div que me hace unos recuadros. Este es el div:

Código HTML:
Ver original
  1. #borde{ border: 1px solid #000000;
  2. -moz-border-radius: 7px;
  3. -webkit-border-radius: 7px;
  4. padding: 10px;
  5. width:120px;
  6. text-align:center;
  7. }

Estoy un poco perdida
__________________
Caminando con el corazón partío
  #8 (permalink)  
Antiguo 05/03/2012, 14:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Mostrar imagenes en 4 columnas

entonces sí es problema de css. si al css de tu div le asignas float:left; creo que debería funcionar.
  #9 (permalink)  
Antiguo 05/03/2012, 14:37
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Mostrar imagenes en 4 columnas

No funciona tampoco con el float. Creo que lo que pasa es que no estoy haciendo la tabla. Lo puse ahora así pero tampoco lo hace:

Código PHP:
Ver original
  1. $ruta = "images/galerias/"; // Indicar ruta
  2.         $filehandle = opendir($ruta); // Abrir archivos
  3.         $col=1;
  4.         echo '<table border=\"1\">';
  5.             while ($file = readdir($filehandle)) {
  6.                 if ($file != "." && $file != "..") {
  7.                 $tamanyo = GetImageSize($ruta . $file);
  8.                 echo "
  9.                 <tr><td><div id=\"titulo_recuadros\">
  10.                    ciudad<br>
  11.                    </div>
  12.                
  13.  
  14.                 <div id=\"borde\">
  15.                 <p>
  16.                 <img src='$ruta$file' $tamanyo><br>
  17.                 $nombre_posada
  18.                 </p>\n
  19.                 </div></td></tr><br>";
  20.                 if($col==4){
  21.                         echo '<br/>';
  22.                         $col=0;
  23.                    }
  24.                    $col++;
  25.                }
  26.             }
  27.             echo '</table>';
  28. closedir($filehandle); // Fin lectura archivos

???
__________________
Caminando con el corazón partío
  #10 (permalink)  
Antiguo 05/03/2012, 14:40
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Mostrar imagenes en 4 columnas

Y veo que no toma lo del contador porque no sabe que la variable $col se refiere a las columnas de la tabla
__________________
Caminando con el corazón partío
  #11 (permalink)  
Antiguo 05/03/2012, 14:54
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Mostrar imagenes en 4 columnas

Desde luego que no lo "sabe"....
Revisando más detenidamente tu código, al div en ningún lugar le indicas que use la clase del css. No necesitas manejar una tabla para crear las columnas, aunque tampoco es que no se pueda. Lo que sí necesitas es conocer mejor el html
  #12 (permalink)  
Antiguo 05/03/2012, 15:05
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Mostrar imagenes en 4 columnas

tu problema se puede solucionar usando la pseudo-clase nth-child() de css3
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #13 (permalink)  
Antiguo 05/03/2012, 15:56
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Mostrar imagenes en 4 columnas

IsaBelM lo que quise decir de que "obviamente" no lo sabe es porque no estamos definiendo quien es $col (es decir no hay nada que indique que es una columna).

Por otra parte, el enlace que me indicaste de pseudo-clase nth-child() de css3 no es lo que creo se ajusta a lo que estoy haciendo.

Pienso que se debe crear la estructura de la tabla para poder decirle que si encuentra tantas columnas entonces muestre las imagenes en la otra fila y asi sucesivamente....

Eso es lo que no se hacer. Encontré un ejemplo que creo puede servir pero no se como adaptarlo.

Código PHP:
Ver original
  1. <div style="width:500px"><!--Div Contenedor-->
  2. <?
  3. $totalCeldas = 20; #Dibujaré 20 items
  4. for( $i = -1; ++$i < $totalCeldas; ){ #Un simple for de 0 a 20 en este caso?>
  5.     <div style="width:100px; float:left; background-color:red">
  6.         <?=$i;?>
  7.             </div><!--Div Hijo -->
  8. <? }?>
__________________
Caminando con el corazón partío
  #14 (permalink)  
Antiguo 06/03/2012, 05:59
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Mostrar imagenes en 4 columnas

la solución es css. añade tanto bloques como quieras
Cita:
<!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=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
* {
margin:0;
padding:0;
position: relative;
}

html, body {
height: 100%;
font-family: garamond, serif;
font-size: 100%;
}

#contenedor {
background: #fe0;
width: 900px;
margin: 0 auto;
overflow: hidden;
}

#contenedor > div {
width: 140px;
height: 105px;
background: #cacaca;
float: left;
margin: 10px;
}

#contenedor > div:nth-child(4n) {
float:right;
background: red;
}

#contenedor > div:nth-child(4n-1) {
margin-left: 50px;
margin-right: 100px;
background: green;
}


#contenedor > div:nth-child(4n-2) {
margin-left: 100px;
margin-right: 50px;
background: pink;
}
</style>
</head>
<body>
<div id="contenedor" >
<div>FOTO1</div>
<div>FOTO2</div>
<div>FOTO3</div>
<div>FOTO4</div>
<div>FOTO5</div>
<div>FOTO6</div>
<div>FOTO7</div>
<div>FOTO8</div>
<div>FOTO9</div>
<div>FOTO10</div>
</div>
</body>
</html>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #15 (permalink)  
Antiguo 09/03/2012, 17:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Mostrar imagenes en 4 columnas

Mil Gracias IsaBelM
__________________
Caminando con el corazón partío

Etiquetas: columnas, 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 14:45.