Comunidad de diseño web y desarrollo en internet online

Problema con la paginacion..!!!

Citar            
MensajeEscrito el 06 Nov 2012 04:10 am
esta es mi imagen


esta es mi paginacion coddeee requiero Help

Código PHP :

<?php  
$conexion=mysql_connect("localhost","root","") 
  or  die("Problemas en la conexion");
mysql_select_db("comentarios",$conexion) 
  or  die("Problemas en la seleccion de la base de datos");

?>
<?php
echo "<div id=\"paginar\">";
// Numero de registros por pagina
$registros='5';
// Tomamos el valor de GET de la pagina
$pagina = $_GET["pagina"];
// Comprobamos si pagina tiene valor numerico
if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
} 
// leemos todas las entradas de la tabla
$entradas=mysql_query("select * from visitantes");
$total_registros=mysql_num_rows($entradas);
$total_paginas = ceil($total_registros / $registros);


////// empieza la paginacion////

if($total_registros>$registros){
if(($pagina - 1) > 0) {
echo "<span class='pactiva'><a href='?pagina=".($pagina-1)."'>&laquo; Anterior</a></span>";
}
// Numero de paginas a mostrar
$num_paginas=5;
//limitando las paginas mostradas
$pagina_intervalo=ceil($num_paginas/2)-1;
 
// 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 ($pagina == $i){
echo "<span class='pnumero'>".$pagina."</span>"; 
}else{
echo "<span class='pactiva'><a href='?pagina=$i'>$i</a></span>"; 
} 
}
 
if(($pagina + 1)<=$total_paginas) {
echo "<span class='pactiva'><a href='?pagina=".($pagina+1)."'>Siguiente &raquo;</a></span>";
}
}



$registros=mysql_query("select * from visitantes ORDER BY com_id DESC limit $inicio,$registros",$conexion) or
  die("Problemas en el select:".mysql_error());
  
  
while ($reg=mysql_fetch_array($registros))
{
?> 

<hr>
<span><?php echo $reg['com_nom']; ?></span><br />
<?php
if($reg['com_email']=="M"){
   $gen="http://localhost/TUONDAVIP/comentario/Perfil_Varon.jpg";
   }else{
   $gen="http://localhost/TUONDAVIP/comentario/Perfil_Mujer.jpg";
   }
?>
<img class="iimg" src="<?php echo $gen;?>" width="100"/>x<br />
<span><?php echo $reg['com_hora']; ?></span><br />
<span><?php echo $reg['com_fecha']; ?></span><br />
<span><?php echo $reg['com_coments']; ?></span><br />

<?php
  }
mysql_close($conexion);
echo"<hr>";
?>
</div>
</body>
</html>


el problema es que solo tengo pcos registro y me salen mas paginacion ps solo deberia mostrar hasta la 4 y nada mas pero me muestra mas 11,12 ps vacio cual es el problema haber si me dan una manito

Por cesarp155

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Nov 2012 03:10 pm
uy el tiempo bueno te respondo a la rapida, te dejo un script para paginar resultados disculpa que este ofuscado pero este lo llevo en mi usb y te dejo los ejemplos de uso
paginator.class.php

Código PHP :

<?php /**
 * clase simplificada
 * -se agrego getNext and getPreview
 * @version 2.6
 * @author tuadmin
 */
 class paginator { private $a = 9; private $b = 0; private $c = 0; private $d = 9; private $e = 0; private $f; private $pageNext = 1; private $pagePreview = 1; static public function newInstance($g) { return new self($g); } public function __construct($g) { $this->c = $g; $this->f = new ArrayIterator(); } public function setTotalLinks($h) { $this->d = $h; } public function currentPage($page) { $this->b = $page < 0 ? 0:floor($page); } public function resultsPerPage($i = 9) { $this->a = $i; } public function paginate() { $this->e = ceil($this->c / $this->a); $this->e = $this->e; $this->b = ($this->b >= $this->e)?$this->e:$this->b ; $this->b = ($this->b < 1)?1:$this->b ; $j = ceil($this->d/2); $k = $this->d - $j; $l = $this->getBeforeCurrentPage($k); $m = $this->getAfterCurrentPage($j); $this->d ; if(($l + $this->d) > $this->e) { $l = ($this->e - $this->d) +1 ; $m = $l + $this->d; $l = $l < 1? 1:$l; } else { $m = $l + $this->d; } for($n = $l ;$n < $m && $n <= $this->e ; $n++) { $this->f->append($n); } $this->pagePreview = $this->getBeforeCurrentPage(1); $this->pageNext = $this->getAfterCurrentPage(1); } public function totalPages() { return $this->e; } public function currentPages() { return $this->f; } public function ArrayPages() { return $this->f; } public function getPages() { return $this->f; } public function limitSql() { return ("LIMIT ".($this->a * ($this->b-1)).",".$this->a); } public function __toString() { return 'LIMIT '.($this->a * ($this->b -1)).",".$this->a; } public function getLast() { $o = $this->getFirst() + $this->a; if($o > $this->c) { $o = $this->c - $this->getFirst(); $o = $o + $this->getFirst(); } return $o; } public function getFirst() { $p = ($this->a * ($this->b-1)); return $p; } public function getCurrentPage() { return $this->b; } public function getBeforeCurrentPage($q) { $r = $this->b - $q; if($r > 1) { return $r; } else { return 1; } } public function getAfterCurrentPage($q) { $s = $this->b + $q; if($s > $this->e) { return $this->e; } else { return $s; } } public function getPreview() { return $this->pagePreview; } public function getNext() { return $this->pageNext; } } 

los ejemplos de uso son

Código PHP :

//el total resultados se obtiene de la consulta sql  "SELECT COUNT(*) FROM tabla"
$total_de_resultados = 115;
$paginateSql = new paginator($total_de_resultados);
      $paginateSql->paginator->resultsPerPage(5);
      $paginateSql->currentPage($_GET["pagina"]);
//hacemos los calculos matematicos para procesar muy necesario
      $paginateSql->paginate();
      foreach ($paginateSql->ArrayPages AS $page)
      {
         echo "  - $page -  ";
      }

//ejemplo con un archivo plano
$archivo = file("data4.txt");
$lineas = count($archivo);

$actual = $_GET['actual'];
$ejemplo = new paginator($lineas);
//resultados por pagina
$ejemplo->resultsPerPage(5);
//pagina actual la que se esta viendo
$ejemplo->currentPage($acual);
//procesar todo para generar
$ejemplo->paginate();

//rescatar resultado para mysql
//esta parte lo modificas para usarlo en tu script osea modificas el 'metodo'

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.