Foros del Web » Programando para Internet » PHP »

Paginacion PHP - SQL SERVER

Estas en el tema de Paginacion PHP - SQL SERVER en el foro de PHP en Foros del Web. Hola compañeros Como estan todos, espero que bien He tratado de buscar algun script para pagina resultados con SQL , pero no he tenido suerte, ...
  #1 (permalink)  
Antiguo 23/06/2011, 08:51
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Paginacion PHP - SQL SERVER

Hola compañeros

Como estan todos, espero que bien

He tratado de buscar algun script para pagina resultados con SQL , pero no he tenido suerte, solo pude conseguir este codigo pero no me funciona:

Código PHP:
//***************** PAGINACION ***************************


$t=5// Cantidad de paginas a mostrar 
if(!isset($_GET['pagina'])) // Verificar que no hayan accionado la paginacion 
{
$pagina=1;
$inicio=0;
}
else
{
$pagina=$_GET['pagina'];
$inicio=($pagina-1)*$t;
}


$sql="select usuario FROM  sis_usuariosfac"//Aqui mi consulta
$conexSucursal->sql $sql;
$conexSucursal->executeSQL();
$total_paginas ceil($conexSucursal->numrows $t);
$lim_inferior=1;
$lim_superior=1
Código HTML:
<table border="1" align="center">
<tr>
<td>
Identificador
</td>
<td>
Descripción
</td>
</tr> 
Código PHP:
while($f=mssql_fetch_array($conexSucursal->result))
{
//Con esta condición visualizamos los registros sin usar LIMIT.
if ($lim_inferior>$inicio && $lim_superior<=$t)

Código HTML:
<tr>
<td> [PHP]  echo $f[0]."\n";  [/PHP]  </td>
<td> [PHP]  echo $f[1]."\n";  [/PHP] </td> 
Código PHP:
$lim_superior++; 
Código HTML:
</tr> 
Código PHP:
}
$lim_inferior++;

Código HTML:
</table> 
Código PHP:

for ($i=1;$i<=$total_paginas;$i++)
{
if (
$i!=$pagina)
{
echo 
"<a href=$PHP_SELF?pagina=$i>$i</a> ";
}
else
{
echo 
$i." ";
}

EL problema es que simplemente me muestra todos los registros , y no la cantidad que le estoy dando , me aparece la paginacion doy clic en cualquier pagina pero me hace lo mismo, muestra todo ... no se que le falte al codigo o que este mal, mejor si hubiera algun script para paginar con SQL se los agradeceria..

Por favor .....
  #2 (permalink)  
Antiguo 27/06/2011, 07:10
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Paginacion PHP - SQL SERVER

Te paso un ejemplo corto viendo que no encuentras nada. En este ejemplo necesitas 2 selects, pero puedes mejorarlo para usar solo una, ahi va:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $sql = "SELECT * FROM tabla A ORDER BY campo";
  4. if(!$query = $db->query($sql)) die("imposible hacer consulta");
  5. if(!$total = $query->numRows()) die("no hay resultados");
  6.  
  7. //ver si estan pidiendo una pagina en concreto
  8. $showPage = isset($_GET['showPage'])?$_GET['showPage']:1;
  9. //Elementos por pagina
  10. $pageLenght = 25;
  11. //Numero de elmentos a mostrar
  12. $start = ($showPage-1)*$pageLenght;
  13. $totalPages = ceil($total/$pageLenght);
  14. //la sentencia limit
  15. $limit = "LIMIT $start, $pageLenght;";
  16.  
  17. //Seguna select con resultados pagindos
  18. $sql .= $limit;
  19.  
  20. //Ahora haces la select y recorres los resultados.... etc..
  21. if(!$query = $db->query($sql)) die("imposible hacer consulta");
  22. if(!$total = $query->numRows()) die("no hay resultados");
  23. while($fetch = $query->fetchRows()){
  24.     //etc, etc, etc....
  25. }
  26.  
  27. ?>
A ver si sirve, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 27/06/2011, 18:12
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 PHP - SQL SERVER

Bueno en realidad el script de paginacion no tiene que depender de la base de datos que usa, solo se debe encargar de paginar y el resto son datos que se le pasan.

Te dejo una clase que realice que es independiente de la base de datos el ejemplo esta para MySQL pero es lo mismo para SQL.

Paginador PHP

Saludos y a las ordenes por cualquier consulta
__________________
"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
  #4 (permalink)  
Antiguo 24/07/2012, 14:52
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Paginacion PHP - SQL SERVER

si lo pudiste realizar deberias poner el ejercicio para algunas personas que les puede servir.... en este caso yo xD .. saludos
  #5 (permalink)  
Antiguo 24/07/2012, 15:23
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: Paginacion PHP - SQL SERVER

la opción de portalmana se me hace la mejor , por que no dependes del manejador de base de datos que hasta donde me había quedado en sql server no hay la clausula de limit
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #6 (permalink)  
Antiguo 24/07/2012, 16:26
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Respuesta: Paginacion PHP - SQL SERVER

hola

mmmmm si eso fue hace mucho tiempo jeje... pero al fin lo solucione


Código PHP:
Ver original
  1. function paginacionSQL($actual, $total, $por_pagina, $enlace,$maxpags=0) {
  2. $total_paginas = ceil($total/$por_pagina);
  3. $anterior = $actual - 1;
  4. $posterior = $actual + 1;
  5. $minimo = $maxpags ? max(1, $actual-ceil($maxpags/2)): 1;
  6. $maximo = $maxpags ? min($total_paginas, $actual+floor($maxpags/2)): $total_paginas;
  7. if ($actual>1)
  8. $texto = "<a href=\"".$enlace."?pag=".$anterior."\">«</a> ";
  9. else
  10. $texto = "<b>«</b> ";
  11. if ($minimo!=1) $texto.= "... ";
  12. for ($i=$minimo; $i<$actual; $i++)
  13. $texto .= "<a href=\"".$enlace."?pag=".$i."\">$i</a> ";
  14. $texto .= "<b>$actual</b> ";
  15. for ($i=$actual+1; $i<=$maximo; $i++)
  16. $texto .= "<a href=\"".$enlace."?pag=".$i."\">$i</a> ";
  17. if ($maximo!=$total_paginas) $texto.= "... ";
  18. if ($actual<$total_paginas)
  19. $texto .= "<a href=\"".$enlace."?pag=".$posterior."\">»</a>";
  20. else
  21. $texto .= "<b>»</b>";
  22. return $texto;
  23. }

Etiquetas: paginacion, server, sql
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 23:24.