Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Rk_PetIT en 21 Junio 2009, 18:50 pm



Título: Paginacion con dos columnas
Publicado por: Rk_PetIT en 21 Junio 2009, 18:50 pm
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:

Código:
<?
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.

Código:
<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.


Título: Re: Paginacion con dos columnas
Publicado por: 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 (http://www.webnova.com.ar/articulo.php?recurso=458)


Saludos!




Título: Re: Paginacion con dos columnas
Publicado por: Rk_PetIT en 21 Junio 2009, 22:34 pm
No se si te entendí bien, pero aquí te dejo esto:

http://www.webnova.com.ar/articulo.php?recurso=458 (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


Título: Re: Paginacion con dos columnas
Publicado por: HardieVon en 23 Junio 2009, 00:01 am
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 (http://cid-ef34e957e059a7f5.skydrive.live.com/self.aspx/.Public/PHP/Clases/PageNavigator.php)


Código
  1. <?php
  2. $host="localhost";
  3. $user="root";
  4. $pass="";
  5. $db="loc";
  6. if(!$link=@mysql_connect($host,$user,$pass)) die ("Error");
  7. $base=@mysql_select_db($db,$link)or die("Error");
  8. require 'PageNavigator.php';
  9. //Maximo de paginas, prucrar que sea # par
  10. define("PERPAGE", 8);
  11. define("OFFSET", "offset");
  12. $offset=(int)@$_GET[OFFSET];
  13.  
  14. $recordoffset=$offset*PERPAGE;
  15. $sql="SELECT * FROM  loc_estado LIMIT $recordoffset,". PERPAGE;
  16. $total="SELECT COUNT(*) as cuantos FROM loc_estado";
  17. $result = @mysql_query($sql);
  18. $result0 = @mysql_query($total);
  19. $totalrecords=mysql_fetch_assoc($result0);
  20. $totalrecords=$totalrecords['cuantos'];
  21. // esto de par e impar es para tener una mejor fluidez de datos
  22.  
  23. $fieldPar;
  24. $fieldInpar;
  25. $i=0;
  26. while ($row = @mysql_fetch_array($result, MYSQL_ASSOC)){
  27. $i++;
  28. if(($i%2)){
  29. $fieldInpar[] = $row;
  30. }else{
  31. $fieldPar[] = $row;
  32. }
  33. }
  34. $pagename=basename($_SERVER['PHP_SELF']);
  35. $numpages = ceil($totalrecords/PERPAGE);
  36. $otherparameter = "&amp;unparametro=VALOR :D";
  37. $primedio=ceil((count($fieldInpar)+count($fieldPar))/2);
  38.  
  39. ?>
  40. <table width="700" border="1">
  41.  
  42. <?php
  43. for($i=0;$i<$primedio;$i++){
  44. ?>
  45. <tr>
  46.    <td><?=$fieldInpar[$i][id_estado]?> ESTADO : <?=$fieldInpar[$i][entidadfederativa]?></td>
  47. <td><?=$fieldPar[$i][id_estado]?>  ESTADO : <?=$fieldPar[$i][entidadfederativa]?></td>
  48.    </tr>
  49.    <?
  50. }
  51. ?>
  52. </table>
  53. <?php
  54. //numero de paginas minimo necesarias
  55. if($numpages>1){
  56. //Crea el navegador
  57. $nav = new PageNavigator($pagename, $totalrecords, PERPAGE, $recordoffset, 4, $otherparameter);
  58. echo $nav->getNavigator();
  59. }
  60. ?>
  61.  


Código
  1. -- phpMyAdmin SQL Dump
  2. -- version 2.10.3
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Servidor: localhost
  6. -- Tiempo de generación: 22-06-2009 a las 16:54:23
  7. -- Versión del servidor: 5.0.51
  8. -- Versión de PHP: 5.2.6
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12. --
  13. -- Base de datos: `loc`
  14. --
  15.  
  16. -- --------------------------------------------------------
  17.  
  18. --
  19. -- Estructura de tabla para la tabla `loc_estado`
  20. --
  21.  
  22. CREATE TABLE `loc_estado` (
  23.  `id_estado` tinyint(2) UNSIGNED NOT NULL,
  24.  `entidadfederativa` VARCHAR(70) NOT NULL,
  25.  PRIMARY KEY  (`id_estado`)
  26. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  27.  
  28. --
  29. -- Volcar la base de datos para la tabla `loc_estado`
  30. --
  31.  
  32. INSERT INTO `loc_estado` VALUES (1, 'Aguascalientes');
  33. INSERT INTO `loc_estado` VALUES (2, 'Baja California');
  34. INSERT INTO `loc_estado` VALUES (3, 'Baja California Sur');
  35. INSERT INTO `loc_estado` VALUES (4, 'Campeche');
  36. INSERT INTO `loc_estado` VALUES (5, 'Coahuila de Zaragoza');
  37. INSERT INTO `loc_estado` VALUES (6, 'Colima');
  38. INSERT INTO `loc_estado` VALUES (7, 'Chiapas');
  39. INSERT INTO `loc_estado` VALUES (8, 'Chihuahua');
  40. INSERT INTO `loc_estado` VALUES (9, 'Distrito Federal');
  41. INSERT INTO `loc_estado` VALUES (10, 'Durango');
  42. INSERT INTO `loc_estado` VALUES (11, 'Guanajuato');
  43. INSERT INTO `loc_estado` VALUES (12, 'Guerrero');
  44. INSERT INTO `loc_estado` VALUES (13, 'Hidalgo');
  45. INSERT INTO `loc_estado` VALUES (14, 'Jalisco');
  46. INSERT INTO `loc_estado` VALUES (15, 'México');
  47. INSERT INTO `loc_estado` VALUES (16, 'Michoacán de Ocampo');
  48. INSERT INTO `loc_estado` VALUES (17, 'Morelos');
  49. INSERT INTO `loc_estado` VALUES (18, 'Nayarit');
  50. INSERT INTO `loc_estado` VALUES (19, 'Nuevo León');
  51. INSERT INTO `loc_estado` VALUES (20, 'Oaxaca');
  52. INSERT INTO `loc_estado` VALUES (21, 'Puebla');
  53. INSERT INTO `loc_estado` VALUES (22, 'Querétaro Arteaga');
  54. INSERT INTO `loc_estado` VALUES (23, 'Quintana Roo');
  55. INSERT INTO `loc_estado` VALUES (24, 'San Luís Potosí');
  56. INSERT INTO `loc_estado` VALUES (25, 'Sinaloa');
  57. INSERT INTO `loc_estado` VALUES (26, 'Sonora');
  58. INSERT INTO `loc_estado` VALUES (27, 'Tabasco');
  59. INSERT INTO `loc_estado` VALUES (28, 'Tamaulipas');
  60. INSERT INTO `loc_estado` VALUES (29, 'Tlaxcala');
  61. INSERT INTO `loc_estado` VALUES (30, 'Veracruz Llave');
  62. INSERT INTO `loc_estado` VALUES (31, 'Yucatán');
  63. INSERT INTO `loc_estado` VALUES (32, 'Zacatecas');


Título: Re: Paginacion con dos columnas
Publicado por: Rk_PetIT en 23 Junio 2009, 00:16 am
Muchicimas gracias....

Todo Funciona EXELENTE!! :D


Título: Re: Paginacion con dos columnas
Publicado por: mianovag en 17 Junio 2011, 05:53 am
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..



Título: Re: Paginacion con dos columnas
Publicado por: mianovag en 17 Junio 2011, 07:11 am
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?


Título: Re: Paginacion con dos columnas
Publicado por: Graphixx en 25 Diciembre 2012, 18:55 pm
Alguien quedo con la clase: PageNavigator.php , que la facilite porfa, esta muy bueno el ejemplo.

No se si te entendí bien, pero aquí te dejo esto:
http://www.webnova.com.ar/articulo.php?recurso=458 (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.