Título: Problema con paginacion PHP/MySQL
Publicado por: camdark en 13 Diciembre 2006, 05:44 am
Hola amigos, He creado este sencillo codigo que pagina resultados, pero aun no he podido hacer para que la primera pagina lleve un link de "pagina=1" hasta el momento solo puedo hacerlo asi "pagina=0" y asi sucesivamente con las otras paginas, he buscado otros codigos de paginacion y todos tenemos el mismo problema :(, aca va mi codigo: <?php //conexion mysql @mysql_connect("localhost", "root", "") or die ("Imposible conectar a la BD."); @mysql_select_db("paginacion") or die ("Imposible seleccionar la BD.");
//consultas a la base de datos if (!isset($_GET['pagina'])) {$pagina = 0;} else {$pagina = $_GET['pagina'];} $cantidad = 5; $inicial = $pagina * $cantidad;
$q1 = mysql_query("SELECT id,titulo FROM articulos LIMIT $inicial,$cantidad"); $q3 = mysql_query("SELECT id FROM articulos"); $q2 = mysql_num_rows($q3); $total = ceil($q2/$cantidad);
//imprimimos los registros while ($var = mysql_fetch_array($q1)) {echo "$var[id] | $var[titulo]<br>";}
//enlaces a las paginas for ($i = 1; $i <= $total; $i++) {$i2 = $i - 1; if ($i2 == $pagina) {echo "$i";} else {echo "<a href='paginacion.php?pagina=$i2'>$i</a> ";}} ?> Espero que me puedan ayudar amigos, saludos. // Nota del moderador: USAR LAS ETIQUETAS DE CÓDIGO!
Título: Re: Problema con paginacion PHP/MySQL
Publicado por: Rk_PetIT en 14 Diciembre 2006, 20:01 pm
Este es mi codigo espero que te sirva... <?php //Limito la busqueda $TAMANO_PAGINA = 10;
//examino la página a mostrar y el inicio del registro a mostrar $pagina = $_GET["pagina"]; if (!$pagina) { $inicio = 0; $pagina=1; } else { $inicio = ($pagina - 1) * $TAMANO_PAGINA; } //miro a ver el número total de campos que hay en la tabla con esa búsqueda $ssql = "select * from pais " . $criterio; $rs = mysql_query($ssql,$conn); $num_total_registros = mysql_num_rows($rs); //calculo el total de páginas $total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);
//pongo el número de registros total, el tamaño de página y la página que se muestra echo "Número de registros encontrados: " . $num_total_registros . "<br>"; echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>"; echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>"; //construyo la sentencia SQL $ssql = "select * from pais " . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA; $rs = mysql_query($ssql); while ($fila = mysql_fetch_object($rs)){ echo $fila->nombre_pais . "<br>"; } //cerramos el conjunto de resultado y la conexión con la base de datos mysql_free_result($rs); mysql_close($conn);
//muestro los distintos índices de las páginas, si es que hay varias páginas if ($total_paginas > 1){ for ($i=1;$i<=$total_paginas;$i++){ if ($pagina == $i) //si muestro el índice de la página actual, no coloco enlace echo $pagina . " "; else //si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página echo "<a href='index.php?pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> "; } } ?>
Ahora.. yo ele eh agregado un pequeño buscador.. te dejo el codigo por cualquier cosa.... <form action="index.php" method="get"> Criterio de búsqueda: <input type="text" name="criterio" size="22" maxlength="150"> <input type="submit" value="Buscar"> </form> <?php //inicializo el criterio y recibo cualquier cadena que se desee buscar $criterio = ""; if ($_GET["criterio"]!=""){ $txt_criterio = $_GET["criterio"]; $criterio = " where nombre_pais like '%" . $txt_criterio . "%'"; } ?>
Espero que te sirva... Saludos.... ;)
|