Paginacion con dos columnas

Iniciado por Rk_PetIT, 21 Junio 2009, 18:50 PM

0 Miembros y 1 Visitante están viendo este tema.

Rk_PetIT

Hola,

Pues estoy haciendo un sistema de noticias y me ah surgido el problema a la hora de paginar... no encontre como hacerlo.. lo puedo hacer con una columna pero las variables para la columna 2 cambian segun las variables que tenga la comlumna 1 y es donde se me complica para la paginacion...

esto es lo que tengo ahora:

<?
mysql_select_db($database, $connection);
$consulta = "SELECT texto FROM articulos";
$limite_columna1 = sprintf("%s LIMIT %d, %d", $consulta, 0, 6);
$resultados1 = mysql_query($limite_columna1, $connection) or die(mysql_error());
$columna1 = mysql_fetch_assoc($resultados1);
$limite_columna2 = sprintf("%s LIMIT %d, %d", $consulta, 6, 6);
$resultados2 = mysql_query($limite_columna2, $connection) or die(mysql_error());
$columna2 = mysql_fetch_assoc($resultados2);
?>


y asi los muestro.


<table>
<tr><td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>COLUMNA 1</td>
</tr>
<? do { ?>
<tr>
<td><? echo $columna1['texto']; ?></td>
</tr>
<? } while ($columna1 = mysql_fetch_assoc($resultados1)); ?>
</table>
</td>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>COLUMNA 2 </td>
</tr>
<? do { ?>
<tr>
<td><? echo $columna2['texto']; ?></td>
</tr>
<? } while ($columna2 = mysql_fetch_assoc($resultados2)); ?>
</table>
</td></tr>
</table>


Alguien me puede ayudar para insertar la paginacion?

Saludos.. y Gracias de antemano.
se piensa una cosa y se dice otra...

luiggy2

" Las grandes ideas suelen salir la mayoría de veces de grandes estupideces "

Rk_PetIT

Cita de: luiggy2 en 21 Junio 2009, 21:10 PM
No se si te entendí bien, pero aquí te dejo esto:

http://www.webnova.com.ar/articulo.php?recurso=458


Saludos!

El problema esque tengo dos columnas no solo una para especificar el comienzo y el fin y la segunda se basa en los resultados de la primera es donde me confundo..

igual gracias y si me pudieras ayudar mas.. te lo agradeceria
se piensa una cosa y se dice otra...

HardieVon

Basicamente es esto.

Un claro ejemplo listo para usar, le puse lo de par e impar para que no le entendieras.

hahaha broma, le puse eso para  poder manejar el orden mejor.
ahorita veras por que.


Recien echecito.

La clase la bajas de aqui
PageNavigator.php


Código (php) [Seleccionar]
<?php
$host
="localhost";
$user="root";
$pass="";
$db="loc";
if(!
$link=@mysql_connect($host,$user,$pass)) die ("Error");
$base=@mysql_select_db($db,$link)or die("Error");
require 
'PageNavigator.php';
//Maximo de paginas, prucrar que sea # par
define("PERPAGE"8);
define("OFFSET""offset");
$offset=(int)@$_GET[OFFSET];

$recordoffset=$offset*PERPAGE;
$sql="SELECT * FROM  loc_estado LIMIT $recordoffset,"PERPAGE;
$total="SELECT COUNT(*) as cuantos FROM loc_estado";
$result = @mysql_query($sql);
$result0 = @mysql_query($total);
$totalrecords=mysql_fetch_assoc($result0);
$totalrecords=$totalrecords['cuantos'];
// esto de par e impar es para tener una mejor fluidez de datos

$fieldPar;
$fieldInpar;
$i=0;
while (
$row = @mysql_fetch_array($resultMYSQL_ASSOC)){
$i++;
if(($i%2)){
$fieldInpar[] = $row;
}else{
$fieldPar[] = $row;
}
}
$pagename=basename($_SERVER['PHP_SELF']);
$numpages ceil($totalrecords/PERPAGE);
$otherparameter "&amp;unparametro=VALOR :D";
 
$primedio=ceil((count($fieldInpar)+count($fieldPar))/2);

?>

<table width="700" border="1">

<?php
for($i=0;$i<$primedio;$i++){
?>

<tr>
    <td><?=$fieldInpar[$i][id_estado]?> ESTADO : <?=$fieldInpar[$i][entidadfederativa]?></td>
<td><?=$fieldPar[$i][id_estado]?>  ESTADO : <?=$fieldPar[$i][entidadfederativa]?></td>
    </tr>
    <?
}
?>
</table>
<?php
//numero de paginas minimo necesarias
if($numpages>1){
//Crea el navegador
$nav = new PageNavigator($pagename$totalrecordsPERPAGE$recordoffset4$otherparameter);
echo 
$nav->getNavigator();
}
?>




Código (sql) [Seleccionar]
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 22-06-2009 a las 16:54:23
-- Versión del servidor: 5.0.51
-- Versión de PHP: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `loc`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `loc_estado`
--

CREATE TABLE `loc_estado` (
  `id_estado` tinyint(2) unsigned NOT NULL,
  `entidadfederativa` varchar(70) NOT NULL,
  PRIMARY KEY  (`id_estado`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `loc_estado`
--

INSERT INTO `loc_estado` VALUES (1, 'Aguascalientes');
INSERT INTO `loc_estado` VALUES (2, 'Baja California');
INSERT INTO `loc_estado` VALUES (3, 'Baja California Sur');
INSERT INTO `loc_estado` VALUES (4, 'Campeche');
INSERT INTO `loc_estado` VALUES (5, 'Coahuila de Zaragoza');
INSERT INTO `loc_estado` VALUES (6, 'Colima');
INSERT INTO `loc_estado` VALUES (7, 'Chiapas');
INSERT INTO `loc_estado` VALUES (8, 'Chihuahua');
INSERT INTO `loc_estado` VALUES (9, 'Distrito Federal');
INSERT INTO `loc_estado` VALUES (10, 'Durango');
INSERT INTO `loc_estado` VALUES (11, 'Guanajuato');
INSERT INTO `loc_estado` VALUES (12, 'Guerrero');
INSERT INTO `loc_estado` VALUES (13, 'Hidalgo');
INSERT INTO `loc_estado` VALUES (14, 'Jalisco');
INSERT INTO `loc_estado` VALUES (15, 'México');
INSERT INTO `loc_estado` VALUES (16, 'Michoacán de Ocampo');
INSERT INTO `loc_estado` VALUES (17, 'Morelos');
INSERT INTO `loc_estado` VALUES (18, 'Nayarit');
INSERT INTO `loc_estado` VALUES (19, 'Nuevo León');
INSERT INTO `loc_estado` VALUES (20, 'Oaxaca');
INSERT INTO `loc_estado` VALUES (21, 'Puebla');
INSERT INTO `loc_estado` VALUES (22, 'Querétaro Arteaga');
INSERT INTO `loc_estado` VALUES (23, 'Quintana Roo');
INSERT INTO `loc_estado` VALUES (24, 'San Luís Potosí');
INSERT INTO `loc_estado` VALUES (25, 'Sinaloa');
INSERT INTO `loc_estado` VALUES (26, 'Sonora');
INSERT INTO `loc_estado` VALUES (27, 'Tabasco');
INSERT INTO `loc_estado` VALUES (28, 'Tamaulipas');
INSERT INTO `loc_estado` VALUES (29, 'Tlaxcala');
INSERT INTO `loc_estado` VALUES (30, 'Veracruz Llave');
INSERT INTO `loc_estado` VALUES (31, 'Yucatán');
INSERT INTO `loc_estado` VALUES (32, 'Zacatecas');


Rk_PetIT

Muchicimas gracias....

Todo Funciona EXELENTE!! :D
se piensa una cosa y se dice otra...

mianovag

estuve buscando solucion a este de dos columnas por mucho tiempo.

este script funciona genial, yo encontre este script paginator.inc.php pero solo pagina una sola columna y es  muy bueno. tambien c los recomiendo..


mianovag

acabo de encotrar un error en el script, si modifico los parametros de :
      $sql="SELECT * FROM  ciudad LIMIT $recordoffset,". PERPAGE;
      $total="SELECT COUNT(*) as cuantos FROM ciudad";
por

      $sql="SELECT * FROM  ciudad where city like \"%$city%"\ LIMIT $recordoffset,". PERPAGE;

      $total="SELECT COUNT(*) as cuantos FROM ciudad where city like \"%$city%"\";

solo muestra los primeros 10 registros y aparecen los links pero al hacer click en el lin de la pag 2 me muestra toda la base datos paginada, es como si se reseteara la busqueda.....


ya me confundi sera k este 'PageNavigator.php' solo muestra la toda base de datos y solo eso?

Graphixx

#7
Alguien quedo con la clase: PageNavigator.php , que la facilite porfa, esta muy bueno el ejemplo.

Cita de: luiggy2 en 21 Junio 2009, 21:10 PM
No se si te entendí bien, pero aquí te dejo esto:
http://www.webnova.com.ar/articulo.php?recurso=458
Saludos!

Aunque el ejemplo de webnova esta genial y ya me funciono, me gustaria probar con el otro.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog