Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Paginacion de SQL en PHP

Estas en el tema de Paginacion de SQL en PHP en el foro de PHP en Foros del Web. Hola foreros. Estoy diseñandoun programa via web y me eh cabezeado para el tema de la paginacion de una Consulta SQL en PHP. Revise algunas ...
  #1 (permalink)  
Antiguo 19/08/2012, 14:34
 
Fecha de Ingreso: mayo-2012
Ubicación: shilito
Mensajes: 67
Antigüedad: 11 años, 11 meses
Puntos: 3
Paginacion de SQL en PHP

Hola foreros.

Estoy diseñandoun programa via web y me eh cabezeado para el tema de la paginacion de una Consulta SQL en PHP.

Revise algunas soluciones vi una CLASE llamada PAGINADOR. Dejo el Link de descarga acá.
[URL="http://www.kaosconcept.net/codigo/php-clase-paginador/"][/URL]

Descarge el archivo (me dije problema solucionado, leo las instrucciones, pero no me funciona .

Segun estas instrcuuiones es sumamente sencillo.

Step three is necessary so that the paginator can figure out how many records it has to deal with. Typically the query can be as simple as SELECT COUNT(*) FROM table WHERE blah blah blah.
You're almost there. Now it's time to create a new paginator object, call a few of its methods, and set some options. Once you have your total record count from step three above you can add the following code to index.php:

1. $pages = new Paginator;
2. $pages->items_total = $num_rows[0];
3. $pages->mid_range = 9;
4. $pages->paginate();
5. echo $pages->display_pages();

Y mi codigo dice así

Código PHP:
<?php

require_once("includes/paginador.class.php");

$conexion mssql_connect("SERVIDOR","USUARIO","PASSWORD");
mssql_select_db("MI_BASE_DE_DATOS"$conexion);


$sql1="select * from bo.busqueda_equipo_persona"//(esto es una vista que esta creada en SQL)";
echo "hola"."<br>";

$ejecuta_sql1=mssql_query($sql1$conexion);
$Ncantidad=mssql_num_rows($ejecuta_sql1);

//imprimo para ver si esta bien lo qeu estoy ejecutando
echo $sql1."<br>";
echo 
$ejecuta_sql1."<br>";
echo 
$Ncantidad."<br>";

//y empiezo a llevar esta informacion a la clase
$pages=Cant_paginas;
$pages->items_total $ejecuta_sql1[0];
$pages->mid_range 9;
$pages->paginate();
echo 
$pages->display_pages(20);


?>
La verdad no entiendo en que estare mal, quizas sea algo sencillo pero le eh dado muchas vueltas al asunto y nada. Asi que antes de darme por vencido recurri a UDS, para ver si me hechan una mano y si esto le pueda servir para OTROS que quieran paginar SQL en PHP.

  #2 (permalink)  
Antiguo 19/08/2012, 18:36
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Paginacion de SQL en PHP

Primero que nada esa clase es anterior a php 5 por lo que el metodo constructor de la clase no se esta ejecutando tendras que renombrarlo de paginate() a __construct() lo otro es que por la url recibe el parametro ipp (item per page).

Te recomiendo que busques otra clase mejor disenada ya que esa deja bastante que desear.

Saludos!
  #3 (permalink)  
Antiguo 19/08/2012, 18:40
Avatar de raco_hernandez  
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: Paginacion de SQL en PHP

Mira yo uso esta:

Cita:
//NUMERO DE REGISTROS
$SQL_TTT=substr($SQL_T, 0, strpos($SQL_T,"LIMIT"));
$NO=Num_Rows($SQL_TTT);
if($NO%$Pag==0){
$T=$NO/$Pag;
}else{
$T=($NO/$Pag)+1;
}
$T=floor($T);
if($Pagi!=1)echo "<a href='".$_SERVER['PHP_SELF']."?ID=".$ID."&Buscar=".$Buscar.$Variables_Extra."& Pagina=".($Pagi-1)."'>«</a>";
for ( $i = 1 ; $i <= $T ; $i ++) {
if($Pagi==$i){
echo "<a class='active'>".$i."</a>";
}else{
echo "<a href='".$_SERVER['PHP_SELF']."?ID=".$ID."&Buscar=".$Buscar.$Variables_Extra."& Pagina=".$i."'>".$i."</a>";
}
}
if($Pagi!=$T and $T!=0)echo "<a href='".$_SERVER['PHP_SELF']."?ID=".$ID."&Buscar=".$Buscar.$Variables_Extra."& Pagina=".($Pagi+1)."'>»</a>";
Espero que te sirva
  #4 (permalink)  
Antiguo 19/08/2012, 18:41
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Paginacion de SQL en PHP

Te dejo una clase paginadora, con documentación en español.
Espero te sea de Utilidad.

Paginador en PHP 3.0.0

Saludos y cualquier consulta a las ordenes.
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #5 (permalink)  
Antiguo 19/08/2012, 18:52
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Paginacion de SQL en PHP

La paginación de items en SQL es de lo mas sencillo, te dejo un ejemplo...

Código PHP:
Ver original
  1. //Obtejemos el total de los registros
  2. $sql = 'SELECT COUNT(*) AS total FROM bo.busqueda_equipo_person';
  3. $query($sql,$conexion);
  4.  
  5. $totalRegistros = mssql_result($query, 0, ' total');
  6.  
  7. //aquí verificamos si existe la variable "pag", la cual indicará el numero de
  8. //página en la que el usuario se encuentra, si no existe será la página 1
  9. $paginaActual = isset($_GET['pag']) ? $_GET['pag'] : 1;
  10.  
  11. //numero de items mostrados por página
  12. $registrosPorPagina = 25;
  13.  
  14. //numero total de páginas a mostrar
  15. $totalPag = ceil($totalRegistros / $registrosPorPagina);
  16.  
  17. //numero desde el cual recuperaremos los registros
  18. $itemInicio = $registrosPorPagina * ($paginaActual - 1);
  19.  
  20. //recuperamos los registros pertinentes
  21. $sql = 'SELECT * FROM bo.busqueda_equipo_person LIMIT '.$itemInicio.','.$registrosPorPagina;
  22. $query = mssql_query($sql,$conexion);
  23.  
  24. //muestras los registros
  25. while($row = msqql_fetch_assoc($query)) {
  26.  
  27. }
  28.  
  29. //creamos los links de las páginas
  30. $paginacion = '<p>';
  31. $paginacion .= ($paginaActual > 1) ? '<a href="'.$_SERVER['PHP_SELF.'].'?pag='.($paginaActual - 1).'">Anterior</a> ' : 'Anterior ';
  32.  
  33. for($i=1; $i<=$totalPag; $i++) {
  34.      if ($i == $paginaActual) {
  35.           $paginacion .= '<strong>'.$i.'</strong> ';
  36.      }else {
  37.           $paginacion .= '<a href="'.$_SERVER['PHP_SELF'].'?pag='.$i.'">'.$i.'</a> ';
  38.      }
  39. }
  40.  
  41. $paginacion .= ($paginaActual < $totalPag) ? '<a href="'.$_SERVER['PHP_SELF'].'?pag='.($paginaActual + 1).'">Siguiente</a>' : 'Siguiente;
  42. $paginacion .= '</p>';
  43.  
  44. echo $paginacion;

No probe el código porque no tengo instalado SQL Server, pero debería funcionar...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #6 (permalink)  
Antiguo 26/08/2012, 07:13
 
Fecha de Ingreso: mayo-2012
Ubicación: shilito
Mensajes: 67
Antigüedad: 11 años, 11 meses
Puntos: 3
Respuesta: Paginacion de SQL en PHP

muchas gracias voy a poner en practica lo comentado por acá.
  #7 (permalink)  
Antiguo 17/04/2013, 12:17
 
Fecha de Ingreso: mayo-2012
Ubicación: shilito
Mensajes: 67
Antigüedad: 11 años, 11 meses
Puntos: 3
Respuesta: Paginacion de SQL en PHP

Muchas gracias a todos lo que se dieron la molestia en ayudarme... lo pode conseguir y les dejo el codigo completo



Código PHP:
Ver original
  1. Muchas gracias a todos los que se dieron la molestia en responderme. Despues de un tiempo eh logrado hacer lo que me interesaba.
  2.  
  3.  
  4. [PHP]<?php
  5. include"../../validacion/sesion_valida.php";
  6. include"../../validacion/conexion.php";
  7.  
  8. ?>
  9.  
  10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  11. <html xmlns="http://www.w3.org/1999/xhtml">
  12. <head>
  13. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  14. <title>Plataforma Control de Inventario</title>
  15. <link href="../estilos/Software.css" rel="stylesheet" type="text/css" />
  16. </head>
  17.  
  18. <body>
  19. <div id="contenedor-principal">
  20.  
  21. <h1 class="titulo-mostrar">Plataforma Control de Inventario</h1>
  22.  
  23. <h3 class="titulo">Modulo de Informacion de Software en los equipos</h3>
  24.  
  25. <h5 class="caja-izquierda"><a href="../menu.php">Volver</a><span class="forma"></span></h5>
  26. <hr />
  27.  
  28. <h5 class="titulo">Informacion del software en los Equipos</h5>
  29. <br />
  30.  
  31. <div id="centra-tabla">
  32. <?php
  33.  
  34. $sql = "SELECT COUNT(*) AS total FROM [dbo].Software_on_Sci";
  35. $query=mssql_query($sql,$conexion);
  36.  
  37. //Obtenemos el total de los registros
  38. while($resul=mssql_fetch_array($query)){
  39.     $totalRegistros= $resul['0'];
  40. }
  41.  
  42. //$totalRegistros = mssql_result($query, 0, ' total');
  43.  
  44. //echo $sql."<br>";
  45. //echo $totalRegistros."<br>";
  46. //exit;
  47.  
  48. //aquí verificamos si existe la variable "pag", la cual indicará el numero de
  49. //página en la que el usuario se encuentra, si no existe será la página 1
  50. $paginaActual = isset($_GET['pag']) ? $_GET['pag'] : 1;
  51.  
  52. //numero de items mostrados por página
  53. $registrosPorPagina = 100;
  54.  
  55. //numero total de páginas a mostrar
  56. $totalPag = ceil($totalRegistros / $registrosPorPagina);
  57.  
  58. //numero desde el cual recuperaremos los registros
  59. $itemInicio = $registrosPorPagina * ($paginaActual - 1);
  60. $itemTermino = $registrosPorPagina * $paginaActual;
  61.  //$totalRegistros
  62. //recuperamos los registros pertinentes
  63. //$sql = 'SELECT * FROM bo.busqueda_equipo_person LIMIT '.$itemInicio.','.$registrosPorPagina;
  64.  
  65. /*$sql = "SELECT [Name0] ,[UserName0],[DisplayName0],[Version0],[InstallDate0] ,[modelo]
  66.       ,[proveedor],[rut] ,[digito_val],[nombre],[apellido_pat],[apellido_mat]
  67.       ,[estado] ,[empresa],[nombre_Domicilio],[Semaforo]
  68. FROM     (SELECT  ROW_NUMBER() OVER (ORDER BY  [Name0] ASC) AS Row,
  69.           [Name0] ,[UserName0],[DisplayName0],[Version0],[InstallDate0] ,[modelo]
  70.       ,[proveedor],[rut] ,[digito_val],[nombre],[apellido_pat],[apellido_mat]
  71.       ,[estado] ,[empresa],[nombre_Domicilio],[Semaforo]
  72. FROM    dbo.Software_on_Sci) tmp
  73. WHERE   Row >= ".$itemInicio." AND Row <= ".$itemTermino."";*/
  74.  
  75. $sql = "SELECT [Name0] ,[UserName0],[DisplayName0],[Version0],[InstallDate0] ,[modelo]
  76.      ,[proveedor],[rut] ,[digito_val],[nombre],[apellido_pat],[apellido_mat]
  77.      ,[empresa],[nombre_Domicilio],[Semaforo]
  78. FROM     (SELECT  ROW_NUMBER() OVER (ORDER BY  [Name0] ASC) AS Row,
  79.          [Name0] ,[UserName0],[DisplayName0],[Version0],[InstallDate0] ,[modelo]
  80.      ,[proveedor],[rut] ,[digito_val],[nombre],[apellido_pat],[apellido_mat]
  81.      ,[estado] ,[empresa],[nombre_Domicilio],[Semaforo]
  82. FROM    dbo.Software_on_Sci) tmp
  83. WHERE   Row >= ".$itemInicio." AND Row <= ".$itemTermino."";
  84.  
  85. $query = mssql_query($sql,$conexion);
  86.  
  87. ?>
  88. <table class="tabla">
  89. <tr><th>Numero</th><th>Hostname</th><th>UserID</th><th>Nombre Software</th> <th>Version</th><th>Fecha Instalacion</th><th>Modelo</th> <th>Marca</th><th>RUT</th><th>Nombre Completo</th><th>Empresa</th><th>Ubicacion</th><th>Tipo Licencia</th></tr>
  90. <?php $cnt=$itemInicio;
  91. while($row = mssql_fetch_assoc($query)) { ?>
  92.  
  93. <tr>
  94. <td><?php echo $cnt ?></td> <td><?php echo $row['Name0'] ?></td> <td><?php echo $row['UserName0'] ?></td> <td><?php echo $row['DisplayName0'] ?></td> <td><?php echo $row['Version0'] ?></td> <td><?php echo $row['InstallDate0'] ?></td> <td><?php echo $row['modelo'] ?></td> <td><?php echo $row['proveedor'] ?></td> <td><?php echo $row['rut']."-".$row['digito_val'] ?></td> <td><?php echo $row['nombre']." ".$row['apellido_pat']." ". $row['apellido_mat'] ?></td> <td><?php echo $row['empresa'] ?></td> <td><?php echo $row['nombre_Domicilio'] ?></td> <td><?php echo $row['Semaforo'] ?></td>
  95. </tr>
  96.  
  97.  
  98. <?php $cnt=$cnt+1; }?>
  99. </table>
  100.  
  101. <table class="tabla">
  102. <tr><th>
  103. <?php
  104. //creamos los links de las páginas
  105. $paginacion = '<p>';
  106. $paginacion .= ($paginaActual > 1) ? '<a href="'.$_SERVER['PHP_SELF.'].'?pag='.($paginaActual - 1).'">Anterior</a> ' : 'Anterior ';
  107.  
  108. for($i=1; $i<=$totalPag; $i++) {
  109.      if ($i == $paginaActual) {
  110.           $paginacion .= '<strong>'.$i.'</strong> ';
  111.      }else {
  112.           $paginacion .= '<a href="'.$_SERVER['PHP_SELF'].'?pag='.$i.'">'.$i.'</a> ';
  113.      }
  114. }
  115.  
  116. $paginacion .= ($paginaActual < $totalPag) ? '<a href="'.$_SERVER['PHP_SELF'].'?pag='.($paginaActual + 1).'">Siguiente</a>' : 'Siguiente';
  117. $paginacion .= '</p>';
  118.  
  119. echo $paginacion;
  120. ?>
  121. </th>
  122. </tr>
  123. </table>
  124.  
  125. </div><!--Centra Tabla-->
  126.  
  127. </div>
  128. </body>
  129. </html>[/PHP]

Etiquetas: paginacion, sql, usuarios
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 06:40.