Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/08/2005, 12:49
Avatar de MeXiCaN
MeXiCaN
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Problemas al Paginar

Hola Amigos tengo este codigo de paginación:

<html>
<body>
<?php include("../cabecera.php"); ?>
<?php

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;
}

$link = mysql_connect("localhost", "root");
mysql_select_db("resim", $link);

if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$result = mysql_query("SELECT COUNT(*) FROM resim", $link);
list($total) = mysql_fetch_row($result);
$tampag = 10;
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT frase FROM resim
LIMIT $reg1, $tampag", $link);

if (mysql_num_rows($result)){
echo "<table border = '1'> \n";
echo "<tr><td>Frase</td>\n";
while ($row = @mysql_fetch_array($result)) {
echo "<tr><td>".$row["frase"].
"</td></tr> \n";
}
echo "</table> \n";
echo paginar($pag, $total, $tampag, "pagina.php?pag=");
}
else
echo "¡ No se ha encontrado ningún registro !";
?>
</body>
</html>


La verdad que la consulta me la hace correctamente, pero lo que no me funciona son los links para mostrar los 10 resultados siguientes.

Tambien tengo este otro codigo pero me ocurre lo mismo:

<html>
<head>
<title>Paginación de resultados</title>
</head>
<body bgcolor=#FFFFFF>
<?php include("../cabecera.php"); ?>

<?
// Datos de conexión a la base
$base="resim";
$con=mysql_connect("localhost","root","");
mysql_select_db($base,$con);

if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;

$pegar = "SELECT frase FROM resim ORDER BY frase LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());

$contar = "SELECT id FROM resim ORDER BY id";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);

// Imprimiendo los resultados
while($array = mysql_fetch_array($cad)) {
echo $array['frase']."<br>";
}

// Cerramos la conexión a la base
$con=mysql_close($con);

// Creando los enlaces de paginación
echo "<p>";
if ($pg <> 0)
{
$url = $pg - 1;
echo "<a href=' prueba.php?pg=".$url."'>« Anterior</a> ";
}
else {
echo " ";
}

for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo "<font face=Arial size=2 color=ff0000><b> $i </b></font>";
}
else {
echo "<a href='prueba.php?pg=".$i."'>".$i."</a> ";
}
}

if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='prueba.php?pg=".$url."'>Siguiente »</a>";
}
else {
echo " ";
}
echo "</p>";
?>
</body>
</html>


Se que seguro que es una tonteria porque los dos me fallan en los mismo y en teoria deben de funcionar, pero yo no consigo hacerlo.

Si hay alguien que me pueda hechar una mano, se lo agradeceria mucho.

Muchas Gracias.

Un saludo, MeXiCaN.

Última edición por MeXiCaN; 05/08/2005 a las 02:37