Paginar resultados php+mysql (solicitud ayuda)

tatekietor Seguir

Gamma
Verificación en dos pasos desactivada
Desde
10 Abr 2009
Mensajes
223
Mi problema es el siguiente:
Estoy tratando de poner paginacion en las categorias de mi pagina,pero por algun motivo,se ven los numeros de la paginacion y todo,pero no funciona,cuando voy a uno de los enlaces de la paginacion,no se ve nada. Este es el codigo que he utilizado:

<?php
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$conexion=mysql_connect("******","******","******") or die("No se pudo conectar a la base de datos");
mysql_selectdb("******",$conexion);
$result = mysql_query("SELECT COUNT(*) FROM entradas", $conexion);
list($total) = mysql_fetch_row($result);
$tampag = 2;
$reg1 = ($pag-1) * $tampag;
$consulta=mysql_query("select titulo,entrada,fecha,categoria from entradas WHERE categoria like '%$categoria%' ORDER BY idnoticia DESC LIMIT $reg1, $tampag",$conexion) or
die("Problemas en el select:".mysql_error());
while ($dato=mysql_fetch_array($consulta)) {
echo "<div id='post'><h3 class='titulo'><a href='entrada.php?titulo=$dato[titulo]'>",$dato["titulo"], "</h3></a>","<p class=fecha><img src='imagenes/calendario.gif'>",$dato["fecha"]," <img src='imagenes/categoria.gif'>",$dato[categoria],"</p><p class='entrada'>",$dato["entrada"],"</p></div>";
}
function paginar($actual, $total, $por_pagina, $enlace) {
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href='$enlace$anterior'>&laquo;</a> ";
else
$texto = "<b>&laquo;</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href='$enlace$i'>$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href='$enlace$i'>$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href='$enlace$posterior'>&raquo;</a>";
else
$texto .= "<b>&raquo;</b>";
return $texto;
}
echo paginar($pag, $total, $tampag, "categorias.php?categoria=$categoria?pag=");
?>
 

grunst3r

Beta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
15 Mar 2011
Mensajes
110
Mira tu codigo ....

PHP:
$pag = 1; // Por defecto, pagina 1

Dices que la variable siempre va ser 1, pero lo que quieres que se ponga 1,2,3 das click en la paginacion ... en ese caso es hacer una condicion de if y else..

algo mas pratico para este caso

PHP:
$pag = (is_numeric($_GET['pag'])) ? $_GET['pag'] : 1; // Por defecto, pagina 1

Espero que le sea de ayuda ;)
 

juan25

No recomendado
Verificación en dos pasos activada
Desde
18 Ago 2010
Mensajes
4.644
Te aconsejo que busques script de paginacion completos que existen por la red, yo he usado varios de ellos y funcionan muy bien lo que ahora no se donde los tome
 

tatekietor

Gamma
Verificación en dos pasos desactivada
Desde
10 Abr 2009
Mensajes
223
gracias por las respuestas,al final lo hice de la siguiente manera:
PHP:
<?php

if (categoria==false) {
$categoria=$_REQUEST[categoria]; }
$link = @mysql_connect("***", "**", "***"); 
mysql_select_db("**", $link); 
 
// maximo por pagina 
$limit = 10; 
 
// pagina pedida 
$pag = (int) $_GET["pag"]; 
if ($pag < 1) 
{ 
   $pag = 1; 
} 
$offset = ($pag-1) * $limit; 
 
 
$sql = "SELECT SQL_CALC_FOUND_ROWS titulo,resumen,fecha,categoria,id,autor,url FROM entradas WHERE categoria LIKE '%$categoria%' ORDER BY id DESC LIMIT $offset, $limit"; 
$sqlTotal = "SELECT FOUND_ROWS() as total"; 
 
$rs = mysql_query($sql); 
$rsTotal = mysql_query($sqlTotal); 
 
$rowTotal = mysql_fetch_assoc($rsTotal); 
// Total de registros sin limit 
$total = $rowTotal["total"]; 
 
?>
 
      
<?php 
         while ($dato = mysql_fetch_assoc($rs)) 
         { $url=$dato["url"];
	echo "<div id='post'><h3 class='titulo'><a href='entrada.php?titulo=$dato[titulo]'>",$dato["titulo"], "</h3></a>","<p class=fecha><img src='imagenes/calendario.gif'>",$dato["fecha"]," <img src='imagenes/categoria.gif'>",$dato[categoria],"<img src='imagenes/autor.gif'>$dato[autor]","</p><p class='entrada'>",$dato["resumen"],"...<font color='red'>Para leer la entrada completa click </font><a href='$url'>Aqui</a></p></div>";
} 
      ?>
 
      
<center><p><?php 
         $totalPag = ceil($total/$limit); 
         $links = array(); 
         for( $i=1; $i<=$totalPag ; $i++) 
         { 
            $links[] = "pagina <a href=\"?pag=$i\">$i</a>";  
         } 
         echo implode(" - ", $links); 
      ?></p>
</center>
 

Pichichi

Beta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
2 Dic 2010
Mensajes
86

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba