PHP - Problema con paginación PDO

 
Vista:

Problema con paginación PDO

Publicado por Juan Francisco (1 intervención) el 02/03/2021 22:19:53
Tengo un problema con la paginación de resultados, en la parte de abajo me lo muestra de la siguiente forma.

1
611 612 613 614 615 616 617 618 619 Siguiente »

cuando tendria que ser asi:

1
1 2 3 4 5 6 7 8 9 10 Siguiente >>

El codigo en cuestión es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
 //establecemos condiciones de paginacion
$registros = 20;
 
$pagina = @$_GET ['pagina'];
 
if (!isset($pagina))
{
$pagina = 1;
$inicio = 0;
}
else
{
$inicio = ($pagina-1) * $registros;
}
 
 
//realizamos la busqueda en la base de datos
$pegar = "SELECT * FROM d_fich0s WHERE (fichas_fecha <= '$Fecha' AND fichas_fecha >= '$Fecha_dos') AND ficha_activa='1' AND ficha_tipo='0' $ordenaje LIMIT $inicio, $registros";
 
//echo $pegar;
 
$cad = $conexion->query($pegar) or die ( 'error al listar, $pegar'  . PDOStatement::errorInfo() );
 
 
 
$contar = "SELECT * FROM d_fich0s WHERE (fichas_fecha <= '$Fecha' AND fichas_fecha >= '$Fecha_dos') AND ficha_activa='1' AND ficha_tipo='0'";
 
$contarok = $conexion->query($contar);
$total_registros = $contarok->rowCount();
 
$total_paginas = ceil($total_registros / $registros);
 
 
 
     $x = "";
 
 
    while ($row = $cad->fetch(PDO::FETCH_ASSOC))
 
    {
 
 
 
    $tpl=CargarFile('tpls/noticias.item.tpl');
 
    $x.='
    <div class="notice">
  <div class="notice_title">
    <a title="'.str_replace('¿','¿',latin1($row['ficha_titulo'])).'" href="MK-ENLACE">'.str_replace('¿','¿',latin1($row['ficha_titulo'])).' '.cata($row['fichas_categoria'],$conexion).'</a>
  </div>
  <div class="clear">
  </div>
  <div style="float:left;" class="hidden-xs">
    <div class="notice_tags"> '.categorias_ver($row['fichas_categoria'],$conexion).'
    </div>
  </div>
  <div style="float:right;" class="hidden-xs">
    <div class="notice_tags"><b>Tags:</b> '.Muestra_tags($row['fichas_tags'], $conexion).'
    </div>
  </div>
  <div style="clear:both;">
  </div>
  <div class="jumpa">
  </div>
  <div class="notice_image">
    <a title="'.str_replace('¿','¿',latin1($row['ficha_titulo'])).'" href="'.$_SERVER['SERVER_NAME'].'/'.urls_amigables(latin1(cambiaresto($row['ficha_campo']))).'/">
      <img src="MK-IMAGENES"></a>
  </div>
  <div class="notice_description">   '.bbcode(utf8_decode($row['ficha_descrip'])).'
  </div>
</div>';
 
 
    $x=str_replace('MK-IMAGENES',"/images-".$row['ficha_id']."",$x);
 
    $x=str_replace('MK-DESCARGAS',$row['fichas_descargas'],$x);
 
      $ak_Rows=$x;
    }
 
   $fila="";
 
//creando los enlaces de paginacion de resultados
 
$ak_Paginado_Paginas.= "<center><p>";
 
if($total_registros>$registros){
if(($pagina - 1) > 0) {
$ak_Paginado_Paginas.=  "<span class='pactiva'><a href='?pagina=".($pagina-1)."'>&laquo; Anterior</a></span> ";
}
// Numero de paginas a mostrar
$num_paginas=10;
//limitando las paginas mostradas
$pagina_intervalo=ceil($num_paginas/2)-1;
 
//echo $pagina_intervalo;
 
// Calculamos desde que numero de pagina se mostrara
$pagina_desde=$pagina-$pagina_intervalo;
$pagina_hasta=$pagina+$pagina_intervalo;
 
 
 
// Verificar que pagina_desde sea negativo
if($pagina_desde<1){ // le sumamos la cantidad sobrante para mantener el numero de enlaces mostrados $pagina_hasta-=($pagina_desde-1); $pagina_desde=1; } // Verificar que pagina_hasta no sea mayor que paginas_totales if($pagina_hasta>$total_paginas){
$pagina_desde-=($pagina_hasta-$total_paginas);
 
$pagina_hasta=$total_paginas;
if($pagina_desde<1){
$pagina_desde=1;
}
}
 
 
for ($i=$pagina_desde; $i<=$pagina_hasta; $i++){
if ($i==$pagina){
$ak_Paginado_Paginas.=  "<span class='pnumero'><b>".$pagina."</b></span> ";
}else{
$ak_Paginado_Paginas.=  "<span class='pactiva'><a href='?pagina=$i'>$i</a></span> ";
}
}
 
if(($pagina + 1)<=$total_paginas) {
$ak_Paginado_Paginas.=  " <span class='pactiva'><a href='?pagina=".($pagina+1)."'>Siguiente &raquo;</a></span>";
}
}
 
$ak_Paginado_Paginas.=  "</p></center>";
 
?>


Muchisimas gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder