Estoy aprendiendo a programar en php y mis conocimientos son todavía muy básicos, así que necesito un poco de ayuda, mi problema es el siguiente:
Necesito paginar los resultados de una búsqueda que realizo a través de un input, por el campo nombre $valor[1] y de unos enlaces por el campo categoría $valor[0] en el caso de la categoría me funciona perfectamente, pero al mostrarme los resultados de la búsqueda por el input, me muestra correctamente la primera página, porque al pinchar en página 2, me busca los siguientes resultados en el campo categoria, que corresponde a los enlaces y no en el campo nombre, y por tanto, me dice que no se han encontrado resultados.
index.php
Código HTML:
Ver original
Código PHP:
En este archivo genero todo el código referente a la muestra de resultados y la paginaciónVer original
<?php ( ); ?> <?php include_once 'paginar.php'; $p = $_GET['p']; else $p = 1; $t = ''; $t = $_GET['t']; $t = $_POST['TxtBuscar']; $t = $_GET['categoria']; ?> <?php { foreach($datos as $valor) { //Con este if me hace la búsqueda por un campo o por otro en función de que los datos provengan del input o de los enlaces $cadena = $valor[1]; //busca por el nombre, la búsqueda la hace bien, pero al paginar NO muestra los resultados } else { $cadena = $valor[0]; //busca por la categoria, la búsqueda y la paginación la hace perfectamente } if ($encontrar_coincidencia !== false) { $coincidencias[] = $valor; } } } else $coincidencias = $datos; ?> <?php //Aqui ponemos el número de elementos que queremos que aparezca por página, en este caso 3 paginar($coincidencias, 3, $p, $t); ?>
paginar.php
Código PHP:
Ver original
<?php function paginar($datos, $l, $p, $t) { // DEFINIMOS LA CANTIDAD DE PÁGINAS // CONDICION DE INICIO $inicio = ($p-1)*$l; // CONDICION DE FINAL $final = $p*$l; // LISTAMOS LAS PÁGINAS echo '<div id="paginas">'; if ($p>1) echo "<a href=\"index.php?p=" . ($p-1) . "&t=".$t."\"> « Página Anterior</a> "; for($i=$pagInicio; $i<=$pagFin; $i++) { if ($i == $p) echo "<strong>$i</strong> "; else echo "<a href=\"index.php?p=$i&t=$t\">$i</a> "; } if ($p<$paginas) echo "<a href=\"index.php?p=" . ($p+1) . "&t=$t\">Página Siguiente » </a>"; echo '</div>'; return; } ?>