paginar consultas

lfzuluaga
26 de Febrero del 2005
Hola. Ya estoy finalizando mi programa, pero ahora mi jefe quiere que sea agradable a la vista.
Estoy trabajando con ADODB, hago mis consultas, el único inconveniente que tengo es que cuando el resultado de la consulta es muy grande no se como paginarlo, si alguien me puede ayudar quedare muy agradecida

Aqui hay una forma m?sencill
26 de Febrero del 2005

<?php
include('../lib/conectabd.php');
$campo = 'clave_conta';
$valor = '0';

$seleccion = "WHERE ".$campo.' = '.$valor;

$sql = "SELECT * FROM bienes ".$seleccion;
$conexion = mysql_query($sql);

$total_encontrados = mysql_affected_rows();
$registros_x_pagina = 20;
$total_paginas = round($total_encontrados/$registros_x_pagina);

echo 'Registros Encontrados: '.$total_encontrados.'<br>';
echo 'TOTAL PAGINAS '.$total_paginas.'<br><br>';

if(!$_GET['pagina_actual']){
$pagina_actual = 0;
}
else{
$pagina_actual = $_GET['pagina_actual'];
}

$sql = "SELECT * FROM bienes ".$seleccion." LIMIT ".$pagina_actual.",".$registros_x_pagina;
$conexion = mysql_query($sql);
$resultado = mysql_fetch_array($conexion);

$contador = 1;

do{

echo $contador.' .- '.$resultado[marbete].' - ';
echo $resultado[descripcion].'<br>';
$contador++;

}while($resultado = mysql_fetch_array($conexion));


?>
<table width="694" border="0" align="center">
<tr>
<td width="70">

<div align="center">
<?php
if($pagina_actual != 0){
$pagina_anterior = $pagina_actual - 1;
echo '<a href="paginar.php?pagina_actual='.$pagina_anterior.'">Anterior</a>';
}
?>
</div>

</td>
<td width="494"> <div align="center">
<?php
for($x=0;$x<$total_paginas;$x++){
echo '<a href="paginar.php?pagina_actual='.$x.'">'.$x.'</a> -';
}
?>
</div></td>
<td width="64">
<div align="center">
<?php
if($pagina_actual != $total_paginas){
$pagina_siguiente = $pagina_actual + 1;
echo '<a href="paginar.php?pagina_actual='.$pagina_siguiente.'">Siguiente</a>';
}
?>
</div></td>
</tr>
</table>

Energ?o
26 de Febrero del 2005
Dile a tu jefe que se valla a la concha de su madre

oscararzola
26 de Febrero del 2005
Podrias utilizar esta función que te detallo aka abajo.. aunque no se que base de datos utilizas sin embargo solo necesitarias cambiar los datos de la conexion y la variable ..

//----------------------paginar.php--------------------------------//
<?php
function Conectarse()
{
//aqui va tu nombre de usuario y tu contraseña si es mysql tu base de datos
//en este ejemplo yo lo hago sin ADODB sin embargo puedes cambiar la funcion y acomodarla aca arriba..
if (!($link=mysql_connect("localhost","oscararzola","123456")))
{
echo "Error conectando a la base de datos.";
exit();
}
// nombre de la base de datos
if (!mysql_select_db("vn3",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
?>
<?php

$link=Conectarse();
$result=mysql_query("select * from prueba order by id DESC",$link);
if (!isset($site))
$site = 0; // $site es la pagina actual
$cantidad=20; // cantidad de resultados por página
$inicial = $site * $cantidad;

$pegar = "SELECT * FROM prueba ORDER BY id DESC LIMIT $inicial,$cantidad";
$result = mysql_query($pegar,$link) or die (mysql_error());

$contar = "SELECT * FROM prueba ORDER BY id DESC";
$contarok= mysql_query($contar,$link);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
?>

<div align="left" class="text"><?php
echo "<table width='250'>";
while($row = mysql_fetch_array($result)){
if ($colorfila==0){
$color= "#e5f6ff";
$colorfila=1;
}else{
$color="#F0F0F0";
$colorfila=0;
}
echo("<tr><td bgcolor='".$color."'><a class='delete' href='unapagina.php?id=".$row["ID"]."'>".$row["titulo"]."</a><br>".$row["autor"]."</td></tr>" );
}
echo "</table>";
mysql_free_result($result);
mysql_close($link);
?> </div>
<p><?
// Creando los enlaces de paginación
echo "<p>";
if ($site <> 0)
{
$url = $site - 1;
echo "<a class='edit' href='paginar.php?site=".$url."'>&laquo; Anterior</a>&nbsp;";
}
else {
echo " ";
}

for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $site) {
echo "";
}
else {
echo "<a class='edit' href='paginar.php?site=".$i."'>".$i."</a>&nbsp;";
}
}

if ($site < $pages) {
$url = $site + 1;
echo "<a class='edit' href='paginar.php?site=".$url."'>Siguiente &raquo;</a>";
}
else {
echo " ";
}
echo "</p>";
?></p>