Foros del Web » Programando para Internet » PHP »

paginar listado en dos columnas

Estas en el tema de paginar listado en dos columnas en el foro de PHP en Foros del Web. hola amigos espero me puedan ayudar encontre este script para mostrar el listado de una consulta en 2 columnas pero como podria adaptar el paginador ...
  #1 (permalink)  
Antiguo 07/04/2007, 13:35
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta paginar listado en dos columnas

hola amigos espero me puedan ayudar encontre este script para mostrar
el listado de una consulta en 2 columnas pero como podria adaptar el paginador de jpinedo a esto


<!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>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php
include('director_config.php');
$conexion = mysql_connect($director_host, $director_usuario, $director_password) or die("error al conectarse al servidor");
mysql_select_db($director_base,$conexion) or die("error al conectarse a la base de datos");

$consulta = "SELECT ARTICULO_ID,TEMA_ARTICULO FROM $director_articulo";

$limite_columna1 = sprintf("%s LIMIT %d, %d", $consulta, 0, 3);
$resultados1 = mysql_query($limite_columna1, $conexion) or die(mysql_error());

$columna1 = mysql_fetch_assoc($resultados1);

$limite_columna2 = sprintf("%s LIMIT %d, %d", $consulta, 3, 3);
$resultados2 = mysql_query($limite_columna2, $conexion) or die(mysql_error());

$columna2 = mysql_fetch_assoc($resultados2);


echo '<table width="398" border="1">';
echo '<tr>';
echo '<td>';
echo '<table width="190" border="0" cellspacing="0" cellpadding="0">';
do {
echo '<tr>';
echo '<td height="0"></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="nota_texto_segundos"><span class="marquito"><img src="Image_nota/dosa.gif" width="60" height="58" /></span> <span class="tit_nota_segundo">'.$columna1['TEMA_ARTICULO'].'</span><br/>
';
echo '</td>';
echo '</tr>';
}
while ($columna1 = mysql_fetch_assoc($resultados1));
echo '</table>';
echo '</td>';
echo '<td>';
echo '<table width="190" border="0" cellspacing="0" cellpadding="0">';
do {
echo '<tr>';
echo '<td height="0"></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="nota_texto_segundos"><span class="marquito"><img src="Image_nota/dosa.gif" width="60" height="58" /></span> <span class="tit_nota_segundo">'.$columna2['TEMA_ARTICULO'].'</span><br/>
';
echo '</td>';
echo '</tr>';
}
while ($columna2 = mysql_fetch_assoc($resultados2));
echo '</table>';
echo '</td>';
echo '</tr>';
echo '</table>';



mysql_close($conexion);
?>
</body>
</html>

saludos
espero sus comentarios
gracias

aqui les pongo la nota original
__________________
gerardo
  #2 (permalink)  
Antiguo 07/04/2007, 15:20
Avatar de 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
  #3 (permalink)  
Antiguo 07/04/2007, 16:13
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: paginar listado en dos columnas

hola amigos tengo una duda poniendo el ejemplo en la tabla donde dice Numeros Extraidos de la Base de Datos
ahi quisiera poner el primer registro de cada paginacion es decir al cargar la pagina en esa celda iria el registro 1 y ya despues mostrar los demas en columnas y asi sucesivamente tiene alguna idea de como podria hacerle
__________________
gerardo
  #4 (permalink)  
Antiguo 10/04/2007, 22:51
Avatar de 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

encontre una solucion pero como que no soy bueno en matematicas aqui les pongo

<?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
//$empezar_fila_cero = $empezar_fila; // 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_fila_cero = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila, $maximo_consulta_cero);
$resultado_cero = mysql_query($limite_fila_cero, $connBlog) or die(mysql_error());
$fila_cero = mysql_fetch_assoc($resultado_cero);
echo "fila 0:".$limite_fila_cero."<br>";



$limite_fila1 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+1, $maximo_consulta);
$resultado1 = mysql_query($limite_fila1, $connBlog) or die(mysql_error());
$fila1 = mysql_fetch_assoc($resultado1);
echo "fila 1:".$limite_fila1."<br>";

$limite_fila2 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+3, $maximo_consulta);
$resultado2 = mysql_query($limite_fila2, $connBlog) or die(mysql_error());
$fila2 = mysql_fetch_assoc($resultado2);
echo "fila 2:".$limite_fila2."<br>";

$limite_fila3 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+5, $maximo_consulta);
$resultado3 = mysql_query($limite_fila3, $connBlog) or die(mysql_error());
$fila3 = mysql_fetch_assoc($resultado3);
echo "fila 3:".$limite_fila3."<br>";

// 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>



<?php

//en caso de borrar seria esto
echo '<table width="398" border="1">';

echo '<tr>';
do {
echo '<td colspan="2">';
echo '<table width="190" border="0" cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<td height="0"></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="nota_texto_segundos"><span class="marquito"><img src="Image_nota/dosa.gif" width="60" height="58" /></span> <span class="tit_nota_segundo">'.$fila_cero['imagen'].'</span><br/>
';
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</td>';
echo '</tr>';
}
while ($fila_cero = mysql_fetch_assoc($resultado_cero));

echo '<tr>';
do {
echo '<td>';
echo '<table width="190" border="0" cellspacing="0" cellpadding="0">';
//do {
echo '<tr>';
echo '<td height="0"></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="nota_texto_segundos"><span class="marquito"><img src="Image_nota/dosa.gif" width="60" height="58" /></span> <span class="tit_nota_segundo">'.$fila1['imagen'].'</span><br/>
';
echo '</td>';
echo '</tr>';
/*}
while ($fila1 = mysql_fetch_assoc($resultado1));*/
echo '</table>';
echo '</td>';


}
while ($fila1 = mysql_fetch_assoc($resultado1));
echo '</tr>';

echo '<tr>';
do {
echo '<td>';
echo '<table width="190" border="0" cellspacing="0" cellpadding="0">';
//do {
echo '<tr>';
echo '<td height="0"></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="nota_texto_segundos"><span class="marquito"><img src="Image_nota/dosa.gif" width="60" height="58" /></span> <span class="tit_nota_segundo">'.$fila2['imagen'].'</span><br/>
';
echo '</td>';
echo '</tr>';
/*}
while ($fila2 = mysql_fetch_assoc($resultado2));*/
echo '</table>';
echo '</td>';
}
while ($fila2 = mysql_fetch_assoc($resultado2));
echo '</tr>';

echo '<tr>';
do {
echo '<td>';
echo '<table width="190" border="0" cellspacing="0" cellpadding="0">';
//do {
echo '<tr>';
echo '<td height="0"></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="nota_texto_segundos"><span class="marquito"><img src="Image_nota/dosa.gif" width="60" height="58" /></span> <span class="tit_nota_segundo">'.$fila3['imagen'].'</span><br/>
';
echo '</td>';
echo '</tr>';
/*}
while ($fila3 = mysql_fetch_assoc($resultado3));*/
echo '</table>';
echo '</td>';
}
while ($fila3 = mysql_fetch_assoc($resultado3));
echo '</tr>';
echo '</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>
__________________
gerardo
  #5 (permalink)  
Antiguo 10/04/2007, 22:52
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: paginar listado en dos columnas

nota continua hasta aca el script

<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);
?>
__________________
gerardo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:26.