Hola a todos!!, acabo de construir un paginador en php, 100% funcional, vi muchos post sobre usuarios que buscan un paginador en php, y que no pueden armarlo porque necesitan script que su host no acepta, o porque es muy complejo de editar el código y adaptarlo a su buscador.
100% FUNCIONAL SIN SCRIPT Agradecimientos: vgonga1986 darkasecas
Ellos me ayudaron a terminar el paginador.
rogertm
Por aportar su tutorial en 2008 de como armar un buscador simple en php y mysql:
http://www.forosdelweb.com/f18/aport...-mysql-632623/
Bueno ahora si, para los que necesitaban un paginador, que hace tiempo buscan y no pudieron armarlo por falta de conocimiento en php o por diferentes razones.
Voy a explicarlo todo en base al buscador de rogertm
Paso 1)
Tienen que poner esto, abajo de la "conexión con su base de datos" o "selección de base de datos":
Para no equivocarse y saber donde tienen que pegar este código tienen que pegarlo abajo de este símbolo "}".
Código 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;
}
Quedaría así:
Código PHP:
// seleccionamos la base de datos
$db_selected = mysql_select_db("aca tu base de datos", $server_link);
if(!$db_selected){
die("No se pudo seleccionar la Base de Datos ". mysql_error());
}
//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;
}
Paso 2) Entras en tu base de datos desde tu host, si usas php-myadmin clickeas en la opción insertar y vas a ver una sección que diga "Columna".
Ahí vas a tener diferentes nombres, ID, titulodelanoticia o como se llamen, en el buscador de roger se llaman noticiaTitulo y noticiaNoticia:
Paso 3)
Después de la verificación de la consulta:
Código PHP:
// verificamos que se haya enviado una consulta
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
$frase = htmlspecialchars($_GET['frase']);
(Si no les dice htmlspecialchars no se preocupen no es que tienen mal su código, pero con htmlspecialchars es más seguro)
Bueno, abajo de eso pegan este código en el siguiente paso le vamos a dar una utilidad a la variable nueva que hicimos:
Código PHP:
$sssql = mysql_query("SELECT noticiaTitulo, noticiaNoticia,
MATCH (noticiaTitulo, noticiaNoticia)
AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
FROM webs
WHERE MATCH (noticiaTitulo, noticiaNoticia)
AGAINST ('$frase' IN BOOLEAN MODE)
ORDER BY coincidencias DESC ", $server_link)
or die(mysql_error());
Si en vez de noticiaTitulo y noticiaNoticia tienen otras columnas, las modifican por los nombres que tengan, si son más solo agregan una coma después de cada una.
Paso 4) Abajo del código que pegaron recién, tienen que tener otro muy parecido o igual, a ese último, le agregan abajo de "order by coincidencias desc", LIMIT $inicio, $TAMANO_PAGINA
el de abajo les quedaría así, esto les va a servir para limitar los resultados que aparecen en cada página:
Código PHP:
$sqlBuscar = mysql_query("SELECT noticiaTitulo, noticiaNoticia,
MATCH (noticiaTitulo, noticiaNoticia)
AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
FROM webs
WHERE MATCH (noticiaTitulo, noticiaNoticia)
AGAINST ('$frase' IN BOOLEAN MODE)
ORDER BY coincidencias DESC
LIMIT $inicio, $TAMANO_PAGINA ", $server_link)
or die(mysql_error());
Paso 5) Abajo de este último paso seguro tienen una variable así:
Código PHP:
$totalRows = mysql_num_rows($sqlBuscar);
Borrenle el $sqlBuscar y le escriben $ssql, les quedaría, sino el paginador no les va a funcionar y va a repetir en todas las páginas los mismos 10 resultados:
Código PHP:
$totalRows = mysql_num_rows($ssql);
abajo agregan, esto va a servir para saber la cantidad total de páginas:
Código PHP:
//calculo el total de páginas
$total_paginas = ceil($totalRows / $TAMANO_PAGINA);
y esto también, para que indique algo así:
Cita: Número de registros encontrados: 260
Se muestran páginas de 10 registros cada una
Mostrando la página 5 de 26
Código PHP:
//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: " . $totalRows . "<br>";
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>";
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";
quedaría:
Código PHP:
$totalRows = mysql_num_rows($ssql);
//calculo el total de páginas
$total_paginas = ceil($totalRows / $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: " . $totalRows . "<br>";
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>";
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";
Paso 6)
Arriba de "//Error debe introducir una palabra", que muestra el error, y más abajo otro distinto si no se encontro ningún resultado.
Vamos a pegar otro código, el último =):
Código PHP:
// si se ha enviado vacio el formulario
//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='indextest1.php?frase=" . $frase . "&buscar=Buscar&pagina=" . $i . "'>" . $i . "</a> ";
}
}
Aca van a editar "indextest1.php" por el nombre de su página principal, casi siempre es index.php o index.html pero miren bien.
Un saludo!!, si tuvieron errores dejan un comentario y los ayudo