Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/06/2012, 21:19
luciana_uru
 
Fecha de Ingreso: diciembre-2010
Mensajes: 160
Antigüedad: 13 años, 11 meses
Puntos: 1
Problema con paginacion PHP

Hola a todos, implemente un sistema de paginacion por $_GET, funciona pero tengo que hacer doble click en el enlace, con un solo click cambia de paginacion pero no el contenido, al hacer otro click mas cambia el contenido. Realmente es algo raro.

Este es el codigo donde capturo el $_GET

Código PHP:
$pag = (int) mysql_real_escape_string($_GET['pag']);

        
//En que pagina estoy?
        
if(!empty($pag)){
            
$RegistrosAEmpezar=($pag-1)*$limit_posts;
            
$PagAct=$pag;
        }
        else{
            
$RegistrosAEmpezar=0;
            
$PagAct=1;
        }

    
$NroRegistros=3000;
    
$PagAnt=$PagAct-1;
    
$PagSig=$PagAct+1;
    
$PagUlt=$NroRegistros/$limit_posts;



    
//Consulta Posts Recientes
if (($data=$cache->get('posts_recent',8)) === FALSE || !empty($id))
        {

    
//Consulta de posts normales
    
$request=db_query("
        SELECT m.ID_MEMBER, m.ID_TOPIC, m.body, m.imgport, c.ID_CAT, subject, c.name, t.ID_BOARD, posterName, puntos, m.hiddenOption, posterTime, denuncias
        FROM {$db_prefix}messages as m, {$db_prefix}boards as c, {$db_prefix}topics as t
        WHERE c.ID_BOARD=m.ID_BOARD AND t.ID_TOPIC=m.ID_TOPIC AND t.isSticky = 0 {$cat_condition}
        AND c.ID_CAT != 12 " 
. (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > "
            AND c.ID_BOARD != $modSettings[recycle_board]" 
'') . "

        ORDER BY m.ID_TOPIC DESC
        LIMIT $RegistrosAEmpezar,$limit_posts"
__FILE____LINE__);

       while(
$posts mysql_fetch_array($request))
    {


            
$context['normal_posts'][] = array(
            
'ID_MEMBER' => $posts['ID_MEMBER'],
            
'id' => $posts['ID_TOPIC'],
            
'body' => $posts['body'],
            
'imgport' => $posts['imgport'],
            
'title' => $posts['subject'],
            
'category' => $posts['name'],
            
'id_category' => $posts['ID_BOARD'],
            
'user' => $posts['posterName'],
            
'date' => $posts['posterTime'],
            
'puntos' => $posts['puntos'],
            
'denuncias' => $posts['denuncias'],

        );
    }

     
mysql_free_result($request);

    if (empty(
$id))
    
$cache->set('posts_recent'$context['normal_posts']);

    }else{
    
$context['normal_posts'] = $data;
    } 
Y este es el code de paginacion que va en la lista de articulos.

Código PHP:
<div id="pg" class="floatR">';
$comienza=1;
$termina=$PagUlt;
$pag_string='';
$medio=4;
        if($PagUlt>2*$medio){
            $topesup=$PagUlt-$medio;
            $topeinf=$medio;
        if ($PagAct>$topeinf)
            $comienza=$PagAct-$medio;

        if($PagAct>$topesup){
            $termina=$PagUlt;
            $comienza=$PagUlt-2*$medio;}
        else
        if ($PagAct>$topeinf)
            $termina=$PagAct+$medio;
        else
            $termina=2*$medio;}

        $id = $_GET['
id'];
        if (empty($id))
        {

        if ($PagUlt>1){
            for ($i=$comienza;$i<=$termina;$i++){
                    if ($i!=$PagAct)
                    $pag_string.='
<a  class="numeronew" id="pag_$i" href="/pagina/'. $i.'/">'.$i.'</a>';
                    else
                        $pag_string .='
<a  href="/pagina/'. $i.'/" class="numero active">'.$i.'</a>';}
        }
               if($id == ''){
               if($PagAct>1) echo "<a id='
btn' class='numeronew' title='Atras' href='/index.php?pag=$PagAnt'>&lt; Atras</a>";
               echo $pag_string;
               if($PagAct<$PagUlt)  echo "<a id='
btn' class='numeronew' title='Siguiente' href='/index.php?pag=$PagSig'>Siguiente &gt;</a>";
               }else
               {
               if($PagAct>1) echo "<a id='
btn' class='numeronew' title='Atras' href='/index.php?pag=$PagAnt'>&lt; Atras</a>";
                echo $pag_string;
               if($PagAct<$PagUlt)  echo "<a id='
btn' class='numeronew' title='Siguiente' href='/index.php?pag=$PagSig'>Siguiente &gt;</a>";
              }

              }else{

              if ($PagUlt>1){
              for ($i=$comienza;$i<=$termina;$i++){
                    if ($i!=$PagAct)
                    $pag_string.="<a  class='
numeronew' id='pag_$i' href='/".$_GET['id']."/". $i."/'>".$i."</a>";
                    else
                        $pag_string .="<a  class='
numero active'>".$i."</a>";}
        }
              if($id == ''){
              if($PagAct>1) echo "<a id='
btn' class='numeronew' title='Atras' href='/index.php?pag=$PagAnt'>&lt; Atras</a>";
               echo $pag_string;
              if($PagAct<$PagUlt)  echo "<a id='
btn' class='numeronew' title='Siguiente' href='/index.php?pag=$PagSig'>Siguiente &gt;</a>";
              }else
              {
              if($PagAct>1) echo "<a id='
btn' class='numeronew' title='Atras' href='/index.php?pag=$PagAnt'>&lt; Atras</a>";
              echo $pag_string;
              if($PagAct<$PagUlt)  echo "<a id='
btn' class='numeronew' title='Siguiente' href='/index.php?pag=$PagSig'>Siguiente &gt;</a>";
              }

            }
echo'
</div>; 
Quisiera saber en que estoy fallando, funcionar funciona, pero como dije arriba tengo que hacer doble click para que muestre el contenido de la pagina seleccionada. Muchas Gracias!!