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: 22 años, 6 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.