Hola a todos! Tengo un problema con este paginador que uso. Al momento de mostrarme los resultados me dice que hay 3 páginas para mostrar, pero al darle SIGUIENTE me muestra hasta 450 páginas.
Este es el formulario:
Código HTML:
<form action="rpauto-resultb.php" method="GET" >
<table width="216" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="20" colspan="2"><img src="imagesite/busqueda.png" width="217" height="44" /></td>
</tr>
<tr>
<td width="186" height="20" align="left"><div class="buscador-arial11pxNG" id="12">
<input name="palabra" type="text" class="buscador-arial11pxNG" id="palabra" size="14" maxlength="20" />
</div></td>
<td width="31" valign="bottom"><input type="submit" id="boton" src="jpg/boton.gif" name="search" value=">>" /></td>
</tr>
</table>
</form>
Y esta la página que me muestra los resultados:
Código PHP:
// realizar esta función si se apretó el botón de enviar en el formulario de busqueda
if(isset($_GET['search']))
// declarar variables los datos del formulario
$palabra = $_GET['palabra'];
{
// obtener datos de la base
$pag = $_GET['pag'];
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$sql = "SELECT COUNT(*) FROM producto WHERE descripcion LIKE '%$palabra%' ORDER BY id_articulo";
$result = mysql_query($sql, $conexion);
list($total) = mysql_fetch_row($result);
$tampag = 12;
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT * FROM producto WHERE descripcion LIKE '%$palabra%' ORDER BY id_articulo LIMIT $reg1, $tampag", $conexion) or die (mysql_error());
// $nose=mysql_query("tu SQL ...") or die (mysql_error());
// Muestra los resultados....
.......
// y acá el paginador
function paginar($actual, $total, $por_pagina, $enlace) {
$pag = $_GET['pag'];
$palabra = "&palabra=". $_GET['palabra'];
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href=\"$enlace$anterior$palabra\" class='txtPaginador11b'><< ANTERIOR</a> ";
else
$texto = "<b><< ANTERIOR</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i$search\" class='txtPaginador11b'>$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href=\"$enlace$i$search\" class='txtPaginador11b'>$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href=\"$enlace$posterior$search\" class='txtPaginador11b'>SIGUIENTE >></a>";
else
$texto .= "<b>SIGUIENTE >></b>";
return $texto;
// Cierro la conexion
mysql_close($conexion);
}
echo paginar($pag, $total, $tampag, "rpauto-resultb.php?pag=");
No entiendo como puede ser que al presionar SIGUIENTE me muestre todas esas páginas. ¿Alguna sugerencia?
Desde ya muchas gracias.
Marx