Hola a todos, tengo este codigo de paginado que me funciona bien, en este caso el tamaño de la pagina que establezco es 6.
tambien tiene un buscador para poner una palabra y que busque los registros que la contienen.
Lo que no consigo es poner el link para que me busque la siguiente pagina, por ejemplo, si estoy en la 2a que al apretar a siguiente vaya a la tercera
He intentado sin exito hacer:
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> ";
echo "<a href='index.php?siguiente=6"."'>"."siguiente"."</a> ";
}
y despues:
if (isset($_GET['siguiente']) && $_GET['siguiente']!=""){
$inicio=$inicio+6;
}
pero no me sale, agradeceria si alguien supiese como
<?php
//Limito la busqueda
$TAMANO_PAGINA = 6;
//examino la página a mostrar y el inicio del registro a mostrar
if (!isset($_GET["pagina"])){
$pagina=1;
}
else{
$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
//establezco en principio $criterio="";
include("funcionesMySql.php");
conectar("tiempo");
$a=mysql_query("set names utf8");
$criterio="";
$ssql = "select * from numeros order by nombre asc" . $criterio;
$rs = mysql_query($ssql);
$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>";
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
if (isset ($_GET["criterio"]) && $_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = " where nombre like '%" . $txt_criterio . "%'";
}
else{ $txt_criterio=$criterio; }
$ssql = "select * from numeros order by nombre " . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA;
$rs = mysql_query($ssql);
while ($fila = mysql_fetch_object($rs)){
echo $fila->nombre." ";
echo $fila->pais . "<br>";
}
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> ";
}
}
?>
<form action="index.php" method="get">
criterio de busqueda:
<input type="text" name="criterio" size="22" maxlenght="150">
<input type="submit" value="buscar">
</form>