Tema destacado: ¡Aprende hacking con práctica! - arZone, el wargame de elhacker.net
Autor
|
Tema: paginar resultados de un while (Leído 1,610 veces)
|
RedZer
Desconectado
Mensajes: 654
|
hace unos dias postie este script que suma 14 dias a la fecha definida $inicio=strtotime('2011-01-05'); $final=strtotime('2013-02-02'); while($inicio <= $final) { echo date("Y-m-d", $inicio)."<br>"; $inicio= strtotime("+14 day", $inicio); }ahora bien si la fecha final termina el 2013-01-05 s egeneraran un buen de fechas sumandole 14 dias desde la fecha de inicio hasta la fecfha final ya que son 2 años de diferencia ahora como puedo paginar esos resultados ? para que me muestre de 10 en 10 las fechas generadas
|
|
|
|
« Última modificación: 17 Junio 2011, 22:01 por RedZer »
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Aquí un poc, pero esta vez lo hice con array. Si estas tratando de hacer un paginador web ya seria otra tema y mucho mas facil. Toca observar bien como funciona el source para entenderlo. <?php $pag = array(); $num = 30;//numero de registro, que serian total de la fechas... //Recordando que es de 10 en 10 $p = 0; $result = array(); for($i = 10; $i <= 30;$i+=10){ $p += 1; for($ii = $i; $ii >= ($i-10);$ii--){ $pag[$p][] = $ii; } $result[] = array_reverse($pag[$p]); } print_r($result); ?> Salida: [yoya@Fedora yum.repos.d]$ php /var/www/html/prueba.php Array ( [0] => Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 )
[1] => Array ( [0] => 10 [1] => 11 [2] => 12 [3] => 13 [4] => 14 [5] => 15 [6] => 16 [7] => 17 [8] => 18 [9] => 19 [10] => 20 )
[2] => Array ( [0] => 20 [1] => 21 [2] => 22 [3] => 23 [4] => 24 [5] => 25 [6] => 26 [7] => 27 [8] => 28 [9] => 29 [10] => 30 )
)
|
|
|
|
|
En línea
|
|
|
|
RedZer
Desconectado
Mensajes: 654
|
encontre un scrip el cual me ayudo ha realizar lo que deceaba lo posteo por so alguien le es de utilidad <?php $inicio=strtotime('2011-01-05'); $final=strtotime('2011-09-07'); $contador=0; while($inicio <= $final) { $paginar[]= date("Y-m-d", $inicio)."<br>"; $inicio= strtotime("+14 day", $inicio); $contador++; } //$paginar = array("aki","ponemos","lo","que","sea","o","un","array","cualquiera","sin","importar","lo","que","tenga"); //el array a paginar $mostrar =10; //numero de elementos por pagina $cuantos = count($paginar); //para saber cuantos elementos tiene el array //$paginar = array_reverse($paginar); //para que muestre los nuevos primeros. Totalmente opcional $paginas = $cuantos / $mostrar; //numero de paginas if (!isset($mostrar) or empty($mostrar) or !is_int($mostrar)) { $mostrar = 5; //por si se te olvid?clarar $mostrar o no es entero le damos de valor 5 } if (empty($_GET["pagina"])) { //si no hay pagina... $desde =0; //principio de la primera pagina $hasta = $desde + $mostrar; //fin de la primera pagina } if (!empty($_GET["pagina"])) { //si estamos en una pagina distinta de la primera... $desde = (int)$_GET["pagina"]; //principio de la pagina X if ($desde + $mostrar < $cuantos) { //si principio + 10 no es mayor a la cantidad de elementos $hasta = $desde + $mostrar; //fin de la pagina X }else{ $hasta = $desde + ($cuantos - $desde); //por si $principio + 10 es superior al numero de elementos } } for ($i=$desde; $i<$hasta; $i++) { echo $paginar[$i].'<br/>'; //mostramos los elementos de la pagina en la que estamos. Aqui que cada uno lo haga como buenamente pueda. xD } for ($p=0; $p<=$paginas; $p++) { $dexde = $p * $mostrar; //para marcar el inicio de la siguiente pagina echo '<a href="paginar2.php?pagina='.$dexde.'">'.$p.'</a> - '; //mostramos la lista de paginas. Que cada uno las muestre como quiera } ?>
|
|
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Ah, pensabas hacer un paginador... Por eso te pregunte si era un paginador web o era alguna forma de tener organizado los datos.
|
|
|
|
|
En línea
|
|
|
|
RedZer
Desconectado
Mensajes: 654
|
Ah, pensabas hacer un paginador... Por eso te pregunte si era un paginador web o era alguna forma de tener organizado los datos.
jaja ~ Yoya ~ si era un paginador lo que deceaba hacer pero como nunca abia paginado sin resultados de bd no sabia como hacerlo , aparte no te entendi lo que me preguntaste  por eso ya no dije nada pero igual gracias ~ Yoya ~
|
|
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
RedZer
Desconectado
Mensajes: 654
|
tube un problema resulta que si me pagina los resultados que me aroja el ciclo pero como yo muestro los resultados dentro de una tabla para que seva mas decente resulta que solo me pagina la fecha tengo esto <table width="200" border="1"> <tr> <td>num</td> <td>fecha</td> </tr> <?php $inicio=strtotime('2011-01-05'); $final=strtotime('2011-12-07'); $contador=0; while($inicio <= $final) { echo"<tr>"; echo " <td>". $paginar[]=date("Y-m-d", $inicio)."<br>"."</td>"; $inicio= strtotime("+14 day", $inicio); echo" <td>$contador</td> </tr>"; $contador++; } include("paginar.php"); ?></table> paginar.php<?php //$paginar = array("aki","ponemos","lo","que","sea","o","un","array","cualquiera","sin","importar","lo","que","tenga"); //el array a paginar $mostrar =10; //numero de elementos por pagina $cuantos = count($paginar); //para saber cuantos elementos tiene el array $paginar = array_reverse($paginar); //para que muestre los nuevos primeros. Totalmente opcional $paginas = $cuantos / $mostrar; //numero de paginas if (!isset($mostrar) or empty($mostrar) or !is_int($mostrar)) { $mostrar = 5; //por si se te olvid?clarar $mostrar o no es entero le damos de valor 5 } if (empty($_GET["pagina"])) { //si no hay pagina... $desde =0; //principio de la primera pagina $hasta = $desde + $mostrar; //fin de la primera pagina } if (!empty($_GET["pagina"])) { //si estamos en una pagina distinta de la primera... $desde = (int)$_GET["pagina"]; //principio de la pagina X if ($desde + $mostrar < $cuantos) { //si principio + 10 no es mayor a la cantidad de elementos $hasta = $desde + $mostrar; //fin de la pagina X }else{ $hasta = $desde + ($cuantos - $desde); //por si $principio + 10 es superior al numero de elementos } } for ($i=$desde; $i<$hasta; $i++) { echo $paginar[$i].'<br/>'; //mostramos los elementos de la pagina en la que estamos. Aqui que cada uno lo haga como buenamente pueda. xD } for ($p=0; $p<=$paginas; $p++) { $dexde = $p * $mostrar; //para marcar el inicio de la siguiente pagina echo '<a href="paginar2.php?pagina='.$dexde.'">'.$p.'</a> - '; //mostramos la lista de paginas. Que cada uno las muestre como quiera } ?> no se como puedo hacerle para que la tabla tambien me lo meta dentro de la paginacion ya que asi como lo tengo solo me pagina la fecha osea lo que esta en el areglo
|
|
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
No entendí nada, escribe un poco mejor.
|
|
|
|
|
En línea
|
|
|
|
RedZer
Desconectado
Mensajes: 654
|
si yoya mira asi como lo tengo sin meter en un areglo la fecha para que lo pagine me mostraria lo siguien 2011-01-05 2011-01-19 2011-02-02 2011-02-16 me seguira mostrando fechas hasta que se cumpla la condicion del while y ala vez se le esta sumando 14 dias ala fecha ok bueno lo siguiente que deceaba hacer era paginar estas fechas por que si la fecha de inicio empiesa el 2011-01-05 y la fecha final termina el 2013-01-05 se generaran muchas fechas entonces por eso las quiero paginar lo cual logro con el script que postie y metiendolo en un areglo de esta manera $paginar[]=date("Y-m-d", $inicio)."<br>"; $inicio= strtotime("+14 day", $inicio); ahora bien aparte de la fecha deceo mostrar otros datos para lo cual ocupo una tabla html donde los <td> se incrementaran dentro del while por ejemplo si deceo mostrar redzer durante las repedticiones que se cumpla el while quedaria algo asi <td>RedZer</td><td>". $paginar[]=date("Y-m-d", $inicio)."<br>"."</td>"; $inicio= strtotime("+14 day", $inicio);
con esto se supone que me tendria que aparecer una tabla en donde me aparescan las fechas generadas y ala vez las repeticiones de redzer todo ordenado pero da la casualidad que no es asi por que por un lado me aparecen solo las fechas paginadas y del otro lado las repeticiones de redzer es como si las fechas estuvieran fuera de la tabla si me explico podrias probar el codigo que postie arriba para que me entiendas de que hablo porfa.
|
|
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Ok ya lo probe, y no entiendo bien lo que quieres fuera y lo que se quede. Captura: http://i52.tinypic.com/dy9i0o.pngMe puedes indicar mejor, hay estructure un poco los elementos. Si puedes, haz un ejemplo con una tabla htm. Osea como quisieras la salida y veo
|
|
|
|
|
En línea
|
|
|
|
RedZer
Desconectado
Mensajes: 654
|
aok mira basandonos en la imagen que subiste y conforme a los numeros ves el numero 1 las fechas quedan fuera de la tabla y si ves en el codigo esta dentro de un columna de la tabla de la tabla ok, en el numero 2 y 3 asi es como yo quiero que aparezca todo en una tabla pero abajo la paginacion .
|
|
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Entonce quieres que se elimine el 1?
Si te fijas, en el 1 aparecen 10 fechas, pero en la 2 y 3 aparecen 24 fechas.
|
|
|
|
|
En línea
|
|
|
|
RedZer
Desconectado
Mensajes: 654
|
Entonce quieres que se elimine el 1?
Si te fijas, en el 1 aparecen 10 fechas, pero en la 2 y 3 aparecen 24 fechas.
si en el numero 1 aparecen 10 fechas pero por paginas si te das cuenta no son las mismas en la pagina 2 son otras y lo que yo deceo es que se paginene las fechas que aparecen en la tabal osea en el numero 2 y 3 pero no se como
|
|
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Bueno le hize un pequeño cambio, ahora por pagina me presenta 10, 10... Todo en un solo archivo. index.php <table width="200" border="1"> <tr> <td>num</td> <td>fecha</td> </tr> <?php $paginar = array(); $inicio=strtotime('2011-01-05'); $final=strtotime('2011-12-07'); $contador=0; while($inicio <= $final) { echo"<tr>"; echo " <td>". $paginar[]=date("Y-m-d", $inicio)."<br>"."</td>"; $inicio= strtotime("+14 day", $inicio); echo" <td>$contador</td> </tr>"; $contador++; } //include("paginar.php"); $mostrar =10; //numero de elementos por pagina $cuantos = count($paginar); //para saber cuantos elementos tiene el array $paginar = array_reverse($paginar); //para que muestre los nuevos primeros. Totalmente opcional $paginas = $cuantos / $mostrar; //numero de paginas if (!isset($mostrar) or empty($mostrar) or !is_int($mostrar)) { $mostrar = 5; //por si se te olvid?clarar $mostrar o no es entero le damos de valor 5 } if (empty($_GET["pagina"])) { //si no hay pagina... $desde =0; //principio de la primera pagina $hasta = $desde + $mostrar; //fin de la primera pagina } if (!empty($_GET["pagina"])) { //si estamos en una pagina distinta de la primera... $desde = (int)$_GET["pagina"]; //principio de la pagina X if ($desde + $mostrar < $cuantos) { //si principio + 10 no es mayor a la cantidad de elementos $hasta = $desde + $mostrar; //fin de la pagina X }else{ $hasta = $desde + ($cuantos - $desde); //por si $principio + 10 es superior al numero de elementos } } for ($i=$desde; $i<$hasta; $i++) { echo $paginar[$i].'<br/>'; //mostramos los elementos de la pagina en la que estamos. Aqui que cada uno lo haga como buenamente pueda. xD } for ($p=0; $p<=$paginas; $p++) { $dexde = $p * $mostrar; //para marcar el inicio de la siguiente pagina echo '<a href=index.php?pagina='.$dexde.'>'.$p.'</a> - '; //mostramos la lista de paginas. Que cada uno las muestre como quiera } ?></table> Dime si estoy mal.
|
|
|
|
|
En línea
|
|
|
|
RedZer
Desconectado
Mensajes: 654
|
yoya no veo mucho cambio al code que yo tenia:/ me sigue apareciendo la tabla pero sin paginar mira te anexo una imagen de lo que deceo hacer como te pudiste dar cuenta en las fechas que aparecen fuera de la tabla solo muestran 10 pero por pagina osea que en la pagina 2 muestra otras 10 ok asi es lo que deceo hacer pero con la tabla osea asi como esta la tabla con fechas me lo pagine me muestre 10 resultados y en la siguiente pag otros dies y asi sucesivamente y no que me muestre los 24 resultados de jalon http://i55.tinypic.com/2mmzbeq.jpg
|
|
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Bueno, creo que ahora si. http://i56.tinypic.com/vy0hed.png<table width="200" border="1"> <tr> <td>num</td> <td>fecha</td> </tr> <?php $paginar = array(); $inicio=strtotime('2011-01-05'); $final=strtotime('2011-12-07'); $contador=0; while($inicio <= $final) { $paginar[]=date("Y-m-d", $inicio); $inicio= strtotime("+14 day", $inicio); } //include("paginar.php"); $mostrar =10; //numero de elementos por pagina $cuantos = count($paginar); //para saber cuantos elementos tiene el array $paginar = array_reverse($paginar); //para que muestre los nuevos primeros. Totalmente opcional $paginas = $cuantos / $mostrar; //numero de paginas if (!isset($mostrar) or empty($mostrar) or !is_int($mostrar)) { $mostrar = 5; //por si se te olvid?clarar $mostrar o no es entero le damos de valor 5 } if (empty($_GET["pagina"])) { //si no hay pagina... $desde =0; //principio de la primera pagina $hasta = $desde + $mostrar; //fin de la primera pagina } if (!empty($_GET["pagina"])) { //si estamos en una pagina distinta de la primera... $desde = (int)$_GET["pagina"]; //principio de la pagina X if ($desde + $mostrar < $cuantos) { //si principio + 10 no es mayor a la cantidad de elementos $hasta = $desde + $mostrar; //fin de la pagina X }else{ $hasta = $desde + ($cuantos - $desde); //por si $principio + 10 es superior al numero de elementos } } for ($p=0; $p<=$paginas; $p++) { $dexde = $p * $mostrar; //para marcar el inicio de la siguiente pagina echo '<a href=index.php?pagina='.$dexde.'>'.$p.'</a> - '; //mostramos la lista de paginas. Que cada uno las muestre como quiera } for ($i=$desde; $i<$hasta; $i++) { echo "<tr>"; echo '<td>'.$paginar[$i].'</td>'; //mostramos los elementos de la pagina en la que estamos. Aqui que cada uno lo haga como buenamente pueda. xD echo '<td>'.($i+1).'</td>'; echo "</tr>"; } ?></table>
|
|
|
|
|
En línea
|
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
paginar en php
Desarrollo Web
|
4e,65,6f
|
6
|
949
|
19 Enero 2004, 22:51
por 4e,65,6f
|
|
|
paginar un script
Desarrollo Web
|
CKlos100
|
5
|
594
|
14 Marzo 2004, 19:06
por 4e,65,6f
|
|
|
ayuda paginar resultados
PHP
|
over crash
|
5
|
858
|
28 Diciembre 2006, 03:38
por DownRate
|
|
|
Paginar un pdf desde c#
.NET
|
joalbela
|
1
|
1,506
|
17 Marzo 2011, 16:45
por Novlucker
|
|
|
Como paginar contenido de tabla ?
Desarrollo Web
|
skip77
|
1
|
574
|
23 Noviembre 2011, 03:02
por Mr. Crowley
|
|