Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/04/2007, 15:20
Avatar de chalchis
chalchis
 
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: paginar listado en dos columnas

hola amigos la respuesta esta aqui en este blog muy bueno

http://www.baluart.net/articulo.php?id_art=91

yo lo hice asi para que sean dos columnas

<?php
///////////////////////////////////////////////////////////////////////////////
/////////////------------BaluArt.net----------------------------///////////////
///////////////////////////////////////////////////////////////////////////////

// Este código debes de MODIFICAR: Te conectas a la Base de Datos
$hostname_connBlog = "localhost"; // host de la base de datos
$database_connBlog = "web"; // nombre de la base de datos
$username_connBlog = "root"; // nombre de usuario
$password_connBlog = ""; // contraseña
///////////////////////////////////////////////////////////////////////////////
$connBlog = mysql_pconnect($hostname_connBlog, $username_connBlog, $password_connBlog) or trigger_error(mysql_error(),E_USER_ERROR);
?>

<?php
$currentPage = $_SERVER["PHP_SELF"];
// asignas los valores que vas a mostrar en la paginación
$maximo_consulta = 2;
$iniciar_consulta = 0;
if (isset($_GET['iniciar_consulta'])) {
$iniciar_consulta = $_GET['iniciar_consulta'];
}
$empezar_fila = $iniciar_consulta * $maximo_consulta; // defines desde que row empieza la paginación
/////////////MODIFICA EL NOMBRE DE LA TABLA Y CAMPOS ////////////////////////////////////
// realizas la consulta a la BD y almacenas los límites de la consulta en 3 variables distintas (pueden ser más)
/////////////////////////////////////////////////////////////////////////////////////////
mysql_select_db($database_connBlog, $connBlog);
$consulta1 = "SELECT id, imagen FROM tabla ORDER BY id DESC";
$limite_fila1 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila, $maximo_consulta);
$resultado1 = mysql_query($limite_fila1, $connBlog) or die(mysql_error());
$fila1 = mysql_fetch_assoc($resultado1);

$limite_fila2 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+2, $maximo_consulta);
$resultado2 = mysql_query($limite_fila2, $connBlog) or die(mysql_error());
$fila2 = mysql_fetch_assoc($resultado2);

$limite_fila3 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+4, $maximo_consulta);
$resultado3 = mysql_query($limite_fila3, $connBlog) or die(mysql_error());
$fila3 = mysql_fetch_assoc($resultado3);

// consigues la variable transmitida por la URL
if (isset($_GET['total_de_resultados'])) {
$total_de_resultados = $_GET['total_de_resultados'];
} else {
$all_resultado1 = mysql_query($consulta1);
$total_de_resultados = mysql_num_rows($all_resultado1);
}
$totalPages_resultado1 = ceil($total_de_resultados/$maximo_consulta)-1;

$queryString_resultado1 = "";
if (!empty($_SERVER['QUERY_STRING']))
{
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "iniciar_consulta") == false &&
stristr($param, "total_de_resultados") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0)
{
$queryString_resultado1 = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_resultado1 = sprintf("&total_de_resultados=%d%s", $total_de_resultados, $queryString_resultado1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Mostrar Resultados Horizontalmente y Paginados con PHP y MySQL</title>
<style type="text/css">
body{background-color: #666666; font: 13px Arial, Helvetica, sans-serif;}
h1{color: #FFFFFF; font: 18px Arial, Helvetica, sans-serif}
h2 {font: 14px Arial, Helvetica, sans-serif}
p { color:#FFFFFF;}
.borde{background-color:#FFFFCC; border: 1px solid #000000}
.numeros {border: 2px solid #999999; text-align:center;}
.paginador { font-weight:bold; text-decoration:none;}
a:link, a:visited { color: #FFFFFF; text-decoration: none;font-weight:bold; }
a:hover, a:active { color: #FF9900; text-decoration: none;font-weight:bold; }
</style>
</head>
<body>
<div align="center">
<h1><a href="http://www.baluart.net/articulo.php?id_art=91">Mostrar Resultados Horizontalmente y Paginados con PHP y MySQL</a></h1>
<table cellpadding="3px" class="borde">
<tr>
<td colspan="10" class="numeros"><strong>Numeros Extraidos<br />de la Base de Datos</strong> </td>
</tr><tr>
<?php do { ?>
<td class="numeros"><?php echo $fila1['imagen']; ?></span></td>
<?php } while ($fila1 = mysql_fetch_assoc($resultado1)); ?>
</tr>
<tr>
<?php do { ?>
<td class="numeros"><?php echo $fila2['imagen']; ?></td>
<?php } while ($fila2 = mysql_fetch_assoc($resultado2)); ?>
</tr>
<tr>
<?php do { ?>
<td class="numeros"><?php echo $fila3['imagen']; ?></td>
<?php } while ($fila3 = mysql_fetch_assoc($resultado3)); ?>
</tr>
</table>
<table border="0" align="center">
<tr>
<td align="center">
<div align="center">
<?php if ($iniciar_consulta > 0) { // Se muestra si no es la primera página ?>
<a href="<?php printf("%s?iniciar_consulta=%d%s", $currentPage, 0, $queryString_resultado1); ?>" class="paginador">Primero</a>
<?php } // Se muestra si no es la primera página ?>
</div></td>
<td align="center">
<div align="center">
<?php if ($iniciar_consulta > 0) { // Se muestra si no es la primera página ?>
<a href="<?php printf("%s?iniciar_consulta=%d%s", $currentPage, max(0, $iniciar_consulta - 3), $queryString_resultado1); ?>" class="paginador">Anterior</a>
<?php } // Se muestra si no es la primera página ?>
</div></td>
<td align="center">
<div align="center">
<?php if ($iniciar_consulta < $totalPages_resultado1) { // Se muestra si no es la última página ?>
<a href="<?php printf("%s?iniciar_consulta=%d%s", $currentPage, min($totalPages_resultado1, $iniciar_consulta + 3), $queryString_resultado1); ?>" class="paginador">Siguiente</a>
<?php } // Se muestra si no es la última página ?>
</div></td>
<td align="center">
<div align="center">
<?php if ($iniciar_consulta < $totalPages_resultado1) { // Se muestra si no es la última página ?>
<a href="<?php printf("%s?iniciar_consulta=%d%s", $currentPage, $totalPages_resultado1, $queryString_resultado1); ?>" class="paginador">&Uacute;ltimo</a>
<?php } // Se muestra si no es la última página ?>
</div></td>
</tr>
</table>
<p>Aprende como crearlo con <a href="http://www.baluart.net/articulo.php?id_art=91">este tutorial</a><br />
O bájatelo desde nuestra sección <a href="http://www.baluart.net/sesion/descargas.php" title="paginacionHorizontal">descargas</a></p>
<h2><a href="http://www.baluart.net/index.php">BaluArt.net</a></h2>
</div>
</body>
</html>
<?php
mysql_free_result($resultado1);
?>

tiene un bug que cuando sea el ultimo ya no muestre mas pero bueno en blog proponen ideas , aunque me gustaria compartir esto con ustedes y me pueden ayudar que en caso de que ya no haya mas registros ya no muestre la liga de siguiente

saludos
__________________
gerardo