Como cortar con Break una tabla rellena mediante for en php?

verita022 Seguir

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
17 Ene 2014
Mensajes
13
Hola, espero poder explicarme, resulta que uso el bucle "for" para rellenar
una tabla de 4 celdas y 7 filas con el contenido proporcionado mediante un
array multidimensional, el tema es el siguiente, el array tiene muchisimo contenido
yo quiero rellenar tablas de 4 *7 en cada pagina y luego pasar a rellenar otra en
otra pagina, y no se como darle esa orden por ejemplo para rellenar la primera tabla
de la primera pagina uso este codigo

Insertar CODE, HTML o PHP:
<?php



for ($x=0; $x<29; $x++){


$buscador = file_get_contents('buscador.php');

$paginas = file_get_contents('paginas-naves.php');


echo('<table width="290" height="104" cellspacing="4"  style="float:left">');


echo('<center><tr>
<td background="imagenes/buscador1.png"colspan="4"><center>'.$buscador.'</center><br></td></tr></center>');


	for ($y=1; $y<=7; $y++){


echo('<tr class="juegoss1">');

	for ($j=1; $j<=4; $j++){




		echo('<td><a href="' . $juegos[0][$x] .'.php"><center><img src="imagenes/' . $juegos[1][$x] . '.jpg" height="123" width="166"></a><br><font size="2" color="black" style="text-decoration:none">'. $juegos[2][$x]  .'</font></center></td>' );


		$x=$x+1;


		}

echo('</tr>');




}

echo('<center><tr>
<td colspan="4"><center><br><br>'.$paginas.'</center><br></td></tr></center>');



echo ('</table>');




		}


?>



De esta manera, siendo $x la que me esta llamando el contenido, me muestra una tabla rellena con el primer valor y el valor numero 28,
pero cuando quiero hacer la q sigue arranco desde 29 pero resulta que no se como terminarla
por que el contenido que queda no termina de llenar la tabla, no se como indicarle que si el
array esta vacio no me muestre la celda... No se si me explique bien... Bueno cualquier ayuda
sera muy bienvenida! si no se entiende avisen!
 
Última edición:

EnzoZ

Gamma
Diseñador
Programador
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
28 Dic 2012
Mensajes
179
ponele la etiqueta
Insertar CODE, HTML o PHP:
 pls
 

verita022

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
17 Ene 2014
Mensajes
13
captura.jpg

Aca te dejo la captura, fijate que en una parte la tabla se rellena con las imagenes y demas y en otra aparecen sin relleno
debido a q no hay mas contenido para meter pero no se como hacer q no siga imprimiendo als celdas si no hay contenido en el array
 

Koletta

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Dic 2012
Mensajes
1.128
No se si he entendido el problema exactamente, pero si haces el bucle con FOREACH dejará de imprimir celdas cuando procese el último elemento. ¿Es eso lo que buscas? Si lo quieres hacer con FOR, deberías poner el límite dinámico recuperando la cantidad de elementos para que el FOR finalice con el último.
 

verita022

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
17 Ene 2014
Mensajes
13
No se si he entendido el problema exactamente, pero si haces el bucle con FOREACH dejará de imprimir celdas cuando procese el último elemento. ¿Es eso lo que buscas? Si lo quieres hacer con FOR, deberías poner el límite dinámico recuperando la cantidad de elementos para que el FOR finalice con el último.


Si eso mismo es lo que quiero hacer!! como hago eso como le pongo el limite dinamico? usando count? probe pero no lo saco
 

Koletta

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Dic 2012
Mensajes
1.128
No lo he visto a fondo pero no me cuadra el primer FOR. Si quieres mostrar los 28 elementos en 7 filas, el FOR hasta 7 y el FOR hasta 4 anidados debería ser suficiente. Lo que hace el código ahora mismo es mostrar 28 tablas de 28 elementos. Si no me equivoco. ¿Podrías indicar la página que es para verlo en vivo? ¿No tienes una base de datos con los juegos? Es lo más cómodo y funcional.

De todas formas, para saber cuantos elementos contiene tu array, puedes usar la función count.
 

verita022

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
17 Ene 2014
Mensajes
13
No lo he visto a fondo pero no me cuadra el primer FOR. Si quieres mostrar los 28 elementos en 7 filas, el FOR hasta 7 y el FOR hasta 4 anidados debería ser suficiente. Lo que hace el código ahora mismo es mostrar 28 tablas de 28 elementos. Si no me equivoco. ¿Podrías indicar la página que es para verlo en vivo? ¿No tienes una base de datos con los juegos? Es lo más cómodo y funcional.

De todas formas, para saber cuantos elementos contiene tu array, puedes usar la función count.

Si tenes razón el primer for es innecesario, aun así si tengo q darle un valor a $x q es la que se relaciona con el valor del array, sino en todas las
paginas me mostraria solo los primeros 28 elementos del array... necesito darle un punto de partida, probe como me dijiste y anda de diez, poniendo obvio el valor inicial de $x igual. Pero sigo sin corregir esta cuestion de q la ultima tabla me sigue largando las celdas vacias esas q se ven ahi,
no la verdad no tengo en base de datos no se trabajar con mysql aun
 

Koletta

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Dic 2012
Mensajes
1.128
¿Cómo haces la paginación? Necesitas una variable para guardar la página y el array deberá mostrar los elementos correspondientes a la página. Si cada página muestra 28 elementos, entonces solo queda calcular porque elemento debe empezar a mostrar según la página en la que esté el usuario.

Veamos:

En la pagina 1 se muestran del 1 al 28
En la página 2 se muestran del 29 al 56
En la página 3 se muestran del 57 al 84
En la página 4 se muestran del 85 al 112
...

Esto nos lleva a que el primer elemento que debe mostrar en cada página es igual al número total de elementos por el número de página menos uno. Y al resultado se le suma uno que será el primero.

$PrimerElemento = 28 * (NºPage -1) + 1

EJEMPLO: En la página 4 -> 28 * (4 - 1) + 1 = 85. El primer elemento a mostrar en la página 4 es el número 85 del array.

Si hacemos la cuenta "a mano" sería: 28 + 28 +28 + 1. Tres veces 28, que son las páginas 1,2 y 3.

Espero haberme explicado bien.:encouragement:

Cualquier duda, aquí estoy. Aunque ya mañana que por aquí son horas de dormir.
 

verita022

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
17 Ene 2014
Mensajes
13
¿Cómo haces la paginación? Necesitas una variable para guardar la página y el array deberá mostrar los elementos correspondientes a la página. Si cada página muestra 28 elementos, entonces solo queda calcular porque elemento debe empezar a mostrar según la página en la que esté el usuario.

Veamos:

En la pagina 1 se muestran del 1 al 28
En la página 2 se muestran del 29 al 56
En la página 3 se muestran del 57 al 84
En la página 4 se muestran del 85 al 112
...

Esto nos lleva a que el primer elemento que debe mostrar en cada página es igual al número total de elementos por el número de página menos uno. Y al resultado se le suma uno que será el primero.

$PrimerElemento = 28 * (NºPage -1) + 1

EJEMPLO: En la página 4 -> 28 * (4 - 1) + 1 = 85. El primer elemento a mostrar en la página 4 es el número 85 del array.

Si hacemos la cuenta "a mano" sería: 28 + 28 +28 + 1. Tres veces 28, que son las páginas 1,2 y 3.

Espero haberme explicado bien.:encouragement:

Cualquier duda, aquí estoy. Aunque ya mañana que por aquí son horas de dormir.


Muchas Gracias!! Me ahorre un for con este dato desde tu comentario anterior, va de diez!
Me queda corregir la cuestion de las celdas vacias.... como podria hacer q las reconozca y no las muestre?
 

Koletta

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Dic 2012
Mensajes
1.128
¿Te siguen saliendo celdas con el símbolo de la imagen perdida? Supongo que será en la última página. Puedes crear un contador de elementos mostrados y si cuando el array termina no hay llegado a 28, crear un FOR de X a 28 para que rellene con celdas en blanco o del color del fondo de tu web, para que no se vean. Necesitaría más info para pensar el algoritmo. ¿El array contiene las url's de las imagenes? Si es así, puedes comparar el contenido de cada elemento con '' (vacío) o la función "isset()" y en caso de no tener contenido no se mostrará la celda.

Me alegra haberte ayudado.
 
Arriba