He observado en distintos foros la pregunta ¿como paginar resultados de una consulta a la Base de Datos? Pues dejamos en la sección descargas un videotutorial con el código de como crearlo haciendo uso de PHP y MySQL, las ventajas de este script son que los links se crean dinámicamente conforme la cantidad de registros de la base de datos, es un paginador numérico al estilo google, nosotros decidimos cuantos registros mostrar por página y es muy facil de adaptar a nuestras consultas. Como manera de hacerlo, el videotutorial muestra como paginar los resultados de la tabla personalizada que creamos en el videotutorial anterior para que muestre un máximo de 3 registros por página.
Cualquier duda o consulta estaremos encantados de responderlas.
Para descargar el código fuente debes iniciar sesión.
Ya no existe el material?
ya no existe este material ?
NECESITO UN EJEMPLO URGENTE!!
gracias por el aporte
Bueno, no se entiende el código en los comentarios... :) yo en lo personal utilizo esta clase para paginación php talvez le sirve a alguien.
Saludetes.
Yo no lo entiendo. Tengo una tabla en PHP. Al final del archivo.php copio el codigo del paginador. Configuro la conexion a la base de dator en "SELECT * FROM plan_vuelo ORDER BY flight ASC"; Le pongo la tabla y listo pero me da error "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 3' at line 1" SOCORRO NECESITO LA RESPUESTA CUANTO ANTES
chido
hola como estan necesito una mano urgente ... estoy tratando de poner en este script de paginacion un link vinculado(valga la redundancia) al id del usuario pero no me sale el id :
echo "".$row_rsTablaPersonalizada['clcelular'] . "";
echo "".$row_rsTablaPersonalizada['clemail'] . "";
echo " Ver ";
echo "".$row_rsTablaPersonalizada['status'] . "";
echo "";
AYUDA URGENTE.
la paginacion falla a la hora de ir a la siguiente pagina, es decir solo me muestra los primeros registros, luego se pierde la informacion traida de la DB.
necesito ayuda urgente, soy nuevo en php y debo terminar este proyecto de grado para pasado mañana, es lo ultimo ke me hace falta para terminar.
como descargo el video tutorial???
Hola amigos, este código me parece muy interesante, pero tengo un problemilla pq yo ademas de paginar quiero q me lo muestre por columnas osea paginar por columnas. seria este caso:
imagen1 imagen2 imagen3
nombre1 nombre2 nombre3
imagen4 imagen5 imagen6
nombre4 nombre5 nombre6
imagen7 imagen8 imagen9
nombre7 nombre8 nombre9
Alguien me puede echar una imagen, he buscado por todos lados pero no doy con la solucion.
si alquien me puediera ayudar se lo agradecería enternamente jeje.
esta buenisimo
hey balu, excelente funcion.
me ahorraste muchas lineas de codigo, sin embargo tengo un problema (kizas por ke soy neofito en php) no logro hacer ke se mantenga el resultado de el query durante la navegacion entre paginas, es decir luego de hacer el primer query ke trae los datos de la DB muestra los 3 primeros registros (por ke le puse como parametro ke solo mostrara 3 registros por pagina) y luego al dar clck en la siguiente pagina, estos datos se pierden y me muestra una tabla html vacia es decir sin los siguientes registros de la consulta.
no se que estaré haciendo mal, les agradezco de antemano su colaboracion.
Tanto el codigo fuente como el videotutorial estan en el mismo archivo zip
Hola malon17, gracias por escribir. Te cuento que puedes lograr lo que buscas, si combinas los códigos de este videotutorial con el de Mostrar resultados en 2 columnas, de igual manera voy a crear un post que explique exacatamente como lograrlo con el código para descargar.
Saludos.
Estoy tratando de agregar una variable mas que seria numero_pagina y me estoy equivocando en algo que es o como puedo crear la misma.<? php $queryString_resultado1 = "";if (!empty($_SERVER['QUERY_STRING'])) { $params = explode("&", $_SERVER['QUERY_STRING']); $newParams = array(); foreach ($params as $param) { if (stristr($param, "iniciar_consulta") == false && stristr($param, "numero_pagina") == false && stristr($param, "total_de_resultados") == false) { array_push($newParams, $param); } } if (count($newParams) != 0) { $queryString_resultado1 = "&" . htmlentities(implode("&", $newParams)); }}$queryString_resultado1 = sprintf("&total_de_resultados=%d%s", $total_de_resultados,"&numero_pagina=%d%s",$numero_pagina, $queryString_resultado1); ?> <?php//Creamos la Barra de Navegación//utilizamos la función max para motrar los 50 valores anteriores al valor máximo$pagNum_tmp = max(0, $numero_pagina-50); for ($pagNum_i=$pagNum_tmp+1;$pagNum_i<=$numero_pagina;$pagNum_i++) {//páginas previas?><a href="<?php printf("%s?iniciar_consulta=%d%s", $currentPage, max(0, $iniciar_consulta - 10), max($pagNum_i-1), $queryString_resultado1); ?>"> <?php echo $pagNum_i; ?></a> <?php } ?><strong><?php// página actualecho $numero_pagina+1; ?></strong><?php $pagNum_tmp = min($numero_pagina+1+50, $total_paginas); for ($pagNum_i=$numero_pagina+2;$pagNum_i<=$pagNum_tmp;$pagNum_i++) { // páginas siguientes?><a href="<?php printf("%s?iniciar_consulta=%d%s", $currentPage, min($totalPages_resultado1, $iniciar_consulta + 10), $queryString_resultado1); ?>"> <?php echo $pagNum_i; ?></a> gracias
Para empezar la variable $numero_pagina ya existe y es la más importante del script, así que no debes modificarla. De repente sólo es eso. Dime que es lo que intentas hacer (para que deseeas agregar una variable más) y te podré ayudar.
lo que intento es que al paginar en dos columnas el paginador me quede asi:<< atras Pagina: 1 2 3 4 5 6 siguiente>>dado que el link para pasar a la siguiente pagina es index.php?iniciar_consulta=10&numero_pagina=2&total_de_resultados=72de esta forma logro pasar la variable al paginador y sepa que estoy en la pagina 2 ya que si no estaria esta variable tendria que tomar $iniciar_consulta y se incrementaria de 10 en 10 los numero y no en el orden 123456..
Ok. Siguiendo la misma lógica que para la paginación numérica (Añade las siguientes celdas al inicio y final de la tabla). Para "Atrás" (sólo se mostrará si no es la primera página): <td> <?php if ($numero_pagina > 0) { ?> <a href="<?php printf("%s?numero_pagina=%d%s", $currentPage, max(0, $numero_pagina - 1), $string_resultados); ?>">Atrás</a> <?php }?> </td> Para "Siguiente": <td> <?php if ($numero_pagina < $totalPaginas_resultados) { ?> <a href="<?php printf("%s?numero_pagina=%d%s", $currentPage, min($totalPaginas_resultados, $numero_pagina + 1), $string_resultados); ?>">Siguiente</a> <?php } ?> </td> De esta manera, si el número de la página no es el último se muestra el enlace "Siguiente". Al final, el páginador quedará así: Atrás 1 2 3 4 5 6 Siguiente Espero te sirva. Saludos.
Hi Balù te felicito por la pag no soy muy bueno en esto pero seria ecelente si explicas mejor como mostrar los resultados en columnas y paginarlos a la vezDe Angtemano agradesco tu respuesta
Un saludo,me gustaria saber cual seria el codigo correo para poder hacer eso estoAtrás 1 2 3 4 5 6 SiguienteUtilizando el codigo de paginar q tienes.
dddddddddddddd
tengo este codigo pero tengo el siguiente problematengo mas o menos 16000 registrosy me muestra toda la numeracio de las paginasnecesito que me quede de la siguiente forma 1 2 3 4 5 6 7 >> nextcuando le de next me muestre <<last 8 9 10 11 12 13 14 >>next***************************************buscar.php*******************************************<? $query = "SELECT * FROM servicio order by id_servicio"; //hago el query le necesito$result = mysql_query($query);$num_colums = 10;$num_res = mysql_num_rows($result); // obetngo el numero de resultados y el numero de filas del query$res_pages = $num_res - 1;//verifico si hay o no paginacion//si el numero de registros no esta vacioif($num_res != 0) { //si el numero de filas es menor o igual que el numero de columnas if($num_res <= $num_colums) { $pager = false; // pager es la variable ke me dice si debo o no poner la paginacion } else { $pager = true; //si el numero de la pagina $j esta vasia 'o' es igual a '1' asignele al numero de la pagina '0' if(($j == "") || ($j == 1))// j es la variable ke me indica en ke pagina estoy. $j = 0; else //si no restele al numero de la pagina 1 //y asigne al numero de la pagina el numero de la pagina por el numero de columnas $j--; $j = $j * $num_colums; // aqui obtengo el punto de inicio del query (puntero) mysql_data_seek($result, $j);// le digo al mysql ke de los resultados del query me muestre apartir de j //calculo el numreo de paginas $num = $num_res/$num_colums; //$numt = $num -1; $num2 = (int)$num; // obtengo la parte entera $num3 = $num - $num2; if($num3 > 0) $num++; if($num_res <= $num_colums) $pager = false; $num_res = $num_res - $j; if($num_res >= $num_colums) $num_res = $num_colums; } // y apartir de aqui ya comienzo a dibujar los resultados?></table><table border="1" height="25"cellpadding="5"> <tr> <? for($i=1; $i<=$num_res; $i++) { $result2 = mysql_fetch_array($result); ?> <td><? echo $result2['id_servicio'];?><br> <br> <br> <? echo $result2['fecha'];?> </td> <? }//results if($pager == true) { ?> </tr> </table> <table width="7" height="1" border="1" align="left" cellpadding='#000000' cellspacing="4"> <td> <? if($j != 0) { $k = $j / $num_colums; $pipe = true; ?> <a href='buscar.php?j=<?=$k;?>'>Last</a> <? } ?> <? if($res_pages != $j) { $k = $j / $num_colums; $k = $k + 2; if($pipe == true) // echo " | "; ?> <a href='buscar.php? j=<?=$k;?>'>Next</a> <tr> <table width="700" height="1" border="1" align="left" cellpadding='#000000' cellspacing="4"> <td> <? } echo "<br>"; for($j=1; $j <= $num; $j++) { echo "<a href='buscar.php?j=$j'>$j </a>"; } ?> </td> <? }//pager ?> </tr><? }else {?><table border="1" cellpadding="5"> <tr> <td>No albums</td> </tr></table><? }?>