Foros del Web » Programando para Internet » PHP »

Problema par e impar

Estas en el tema de Problema par e impar en el foro de PHP en Foros del Web. Hago lo siguiente para determinar en un bucle cuando cortar para paginar una galería o mostrar "x" número de fotos por linea o columna Cita: ...
  #1 (permalink)  
Antiguo 18/09/2012, 06:04
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 17 años
Puntos: 20
Exclamación Problema par e impar

Hago lo siguiente para determinar en un bucle cuando cortar para paginar una galería o mostrar "x" número de fotos por linea o columna

Cita:
if ($j%3==0)
{
print "</tr>";
}
El caso es quetengo imaginaros 5 fotos

Cuando comienza el bucle sería asi : 0 1 2 3 4 5

Bien pues me corta en "0" con un tr y entonce sme lo muestra mal si selecciono 3 columnas me queda una y luego las otras

En este estilo :

0 col

1 col 2 col 3 col

Cuando para 3 columnas debería ser

123
45

Por ejemplo


Espero me puedan ayudar , gracias un saludo
  #2 (permalink)  
Antiguo 18/09/2012, 06:08
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 13 años, 4 meses
Puntos: 31
Respuesta: Problema par e impar

explicate un poco mejor por favor.
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #3 (permalink)  
Antiguo 18/09/2012, 06:16
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 17 años
Puntos: 20
Exclamación Respuesta: Problema par e impar

Cita:
Iniciado por gldelossantos Ver Mensaje
explicate un poco mejor por favor.

Imaginate que tengo un bucle for

Cita:


$imagenes=array(

"imagen_0.jpg",
"imagen_1.jpg",
"imagen_2.jpg",
"imagen_3.jpg",
"imagen_4.jpg",
"imagen_5.jpg",
"imagen_6.jpg",


);


for ($i=0;$i<6;$i++)
{

/// El resultado seria 0 1 2 3 4 5 6


/// Determinar cortar la secuencia cada 3

print "".$imagenes[$i]."";


if ($i%3==0)
{
print "<br>";
}


}

Bien lo que se desea es cortar cada 3 elementos pero lo corta en el cero y luego lo corta normal , ese es el problema


Por tanto me quedaría una imagen arriba y luego las imágenes agrupadas de tres en tres , es decir no corta uniformemente

Espero haberme explicado , gracias , saludos

Última edición por fr1974; 18/09/2012 a las 06:23
  #4 (permalink)  
Antiguo 18/09/2012, 06:26
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años, 7 meses
Puntos: 58
Respuesta: Problema par e impar

Pues tendrás que poner que si el resto de dividir $i entre 3 es cero y además $i es distinto de cero, entonces pon <br/>
  #5 (permalink)  
Antiguo 18/09/2012, 06:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 17 años
Puntos: 20
Respuesta: Problema par e impar

No sirve asi porque en vez de ponerme 3 columnas me pone 4 porque entiende que el cero es un número par

Hay alguna alternativa para en un bucle determinar cortar cada 3 o 4 o los elementos que sean diferente a esta ?

Saludos y gracias
  #6 (permalink)  
Antiguo 18/09/2012, 06:36
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años, 7 meses
Puntos: 58
Respuesta: Problema par e impar

Código PHP:
Ver original
  1. <?php
  2. $imagenes=array(
  3.  
  4. "imagen_0.jpg",
  5. "imagen_1.jpg",
  6. "imagen_2.jpg",
  7. "imagen_3.jpg",
  8. "imagen_4.jpg",
  9. "imagen_5.jpg",
  10. "imagen_6.jpg",
  11.  
  12.  
  13. );
  14. for ($i=0;$i<6;$i++){
  15.     print "".$imagenes[$i]."-";
  16.     if (($i+1)%3==0 && $i!=0){
  17.         print "<br>";
  18.     }
  19. }
  20. ?>
  #7 (permalink)  
Antiguo 18/09/2012, 07:00
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 17 años
Puntos: 20
Respuesta: Problema par e impar

Hola jossss muchas gracias joer se me paso lo del indice $i

Por cierto si tengo un bucle imaginate

Cita:


<?php
$imagenes=array(

"imagen_0.jpg",
"imagen_1.jpg",
"imagen_2.jpg",
"imagen_3.jpg",
"imagen_4.jpg",
"imagen_5.jpg",
"imagen_6.jpg",


);
for ($i=1;$i<6;$i++){
print "".$imagenes[$i]."-";
if (($i+1)%3==0 && $i!=0){
print "<br>";
}
}
?>
Aqui he puesto for ($i=1;$i<6;$i++)


Es decir que a partir de 1 como hago porque claro está el dato de $imagenes[0] , me lo come que opciones habría para solucionar esto porque para hacer la paginación prefiero partir de 1 , 2 , 3 ..... , etc , gracias , saludos
  #8 (permalink)  
Antiguo 18/09/2012, 08:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años, 7 meses
Puntos: 58
Respuesta: Problema par e impar

Entonces si vas a empezar con 1 te sobra comprobar el si es el primer elemento
Código PHP:
Ver original
  1. for ($i=1;$i<7;$i++){
  2.     print "".$imagenes[$i]."-";
  3.     if ($i%3==0){
  4.         print "\n";
  5.     }
  6. }
  #9 (permalink)  
Antiguo 18/09/2012, 08:42
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 17 años
Puntos: 35
Respuesta: Problema par e impar

utiliza dos variables.

j=0;
for(i=1;$i<7;i++){
echo $imagenes[j];
if(i%3==0){
print"<br>";
}
j=i;
}
  #10 (permalink)  
Antiguo 18/09/2012, 08:51
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 17 años
Puntos: 20
Respuesta: Problema par e impar

Si exacto al final utilice dos variables para no liarlo más asi dejo lo otro igual , gracias a los dos , por la colaboración

Un gran saludo !!!
  #11 (permalink)  
Antiguo 18/09/2012, 09:09
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 10 meses
Puntos: 23
Respuesta: Problema par e impar

De esta manera la imagen_0.jpg la muestras, además de poder cambiar el num de columnas por fila a mostrar, sin alterar el código salvo en el valor de una variable y por ultimo es mejor utilizar count ($imagenes) pq nunca se sabe si se van a variar la cantidad de elementos en el array.

Código PHP:
$num_cols 3//Nos servirá por si queremos cambiar el num de columnas por fila de imágenes

for ($i 1$i <= count($imagenes); $i++)
{
    echo 
"".$imagenes[$i-1] . "-";
    if (
$i $num_cols == 0)
        {
        echo 
"\n";
    }


Etiquetas: impar, par
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 05:29.