Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2011, 16:55
marx-pola
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 24 años, 5 meses
Puntos: 1
Problema con buscador y paginador

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&oacute;n si se apret&oacute; el bot&oacute;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
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.