GatorV: después de largas noches sin dormir, creo que lo he logrado pero me faltan un par de cosillas que no me funcionan y hay unas líneas de código que quisiera me expliques o expliquen por favor. Veamos por partes:
Las líneas que he modificado son estas (para no transcribir todo el codigo)
Código PHP:
if ($_GET['buscador'])
{
// Tomamos el valor ingresado
$buscar = $_GET['palabra'];
// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
include ("con.php");
// resto del codigo
...
Y abajo de todo puse el paginador
Código PHP:
/******************************************************/
/* Funcion paginar
* actual: Pagina actual
* total: Total de registros
* por_pagina: Registros por pagina
* enlace: Texto del enlace
* Devuelve un texto que representa la paginacion
*/
function paginar($actual, $total, $por_pagina, $enlace) {
$pag = $_GET['pag'];
$buscar = "&palabra=". $_GET['palabra'];
$re = "&buscador=Buscar";
if(empty($total) || empty($por_pagina))
$total_paginas = 0;
else
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href=\"$enlace$anterior$buscar$re\" >« ANTERIOR</a> ";
else
$texto = "<b>« ANTERIOR</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i$buscar$re\" >$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href=\"$enlace$i$buscar$re\" >$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href=\"$enlace$posterior$buscar$re\" >SIGUIENTE »</a>";
else
$texto .= "<b>SIGUIENTE »</b>";
return $texto;
}
echo paginar($pag, $total, $tampag, "msearch.php?pag=");
Al Paginador le agregué a mano la variable
$re = "&buscador=Buscar"; porque sin ella no me mostraba los siguientes resultados.
¿Está mal lo que hice o se podía hacer de otra forma?
¿Cómo hago para que al ingresar algo que no se encuentre en la base me muestre un mensaje, por ejemplo, no se encontraron resultados para X?
Me pasó algo raro... probando varias veces presionando el ENTER en el buscador, no me aparecía el mensaje de error de esta línea:
Código PHP:
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
Desde ya a todos y en especial a ti GatorV, mil gracias por la paciencia.
Marx.