[Pgsql-ayuda] Sobre Paginacion con Php y postgres

Martin Marques martin@bugs.unl.edu.ar
Tue, 9 Dec 2003 12:06:02 -0300


El Dom 07 Dic 2003 06:39, unimauro escribi=C3=B3:
> Saludos estoy haciendo un ordenamiento con php y postgres algo as=C3=AD:
>
>
> Pero tengo un bug extra=C3=B1o : en la primera p=C3=A1gina no me sale nin=
gun dato
> absolutamente nada  :/ .
>
> En la segunda pagian si me lale adecuadamente todo ... excelente :)
>
> Pero en la tercera pagina me sale un dato mas del que esperaba ...
>
> Alguien me puede datr un mano , este un c=C3=B3digo que tome de Mysql - P=
hp
                                                             ^^^^^
Se nota que estaba hecho para esto.

1) Usa alguna biblioteca de abstraccion de HTML (HTML_Template_IT, Smarty,=
=20
etc.)
2) Usa una biblioteca o clase de abstraccion de base de datos. Te va a ayud=
ar=20
mucho con tu codigo.

Lo que esta abajo parece un spagetti horrible.

> creo que hay problemas  que no puedo apreciar :(.
>
> <?
> include '../includes/in_conection.inc';
> $TAMANO_PAGINA =3D 5;
> $pagina =3D $_GET["pagina"];
> if (!$pagina) {
>     $inicio =3D 0;
>     $pagina=3D1;
> }
> else {
>     $inicio =3D ($pagina - 1) * $TAMANO_PAGINA;
> }
> $ssql=3D"select*from accesos ".$criterio;
> $rs=3Dpg_query($conexion,$ssql);
> $num_total_registros =3D pg_num_rows($rs);
> $total_paginas =3D ceil($num_total_registros / $TAMANO_PAGINA);
>
> echo "N&uacute;mero de registros encontrados: " . $num_total_registros .
> "<br>";
> echo "Se muestran p&aacute;ginas de " . $TAMANO_PAGINA . " registros
> cada una<br>";
> echo "Mostrando la p&aacute;gina " . $pagina . " de " . $total_paginas .
> "<p>";
>
> $ssql=3D"SELECT*FROM accesos $criterio LIMIT $inicio OFFSET
> $TAMANO_PAGINA";
> $rs =3D pg_query($conexion,$ssql);
>
> echo "<form name=3D'modificar' method=3Dpost action=3D'borrar.php'>";
> echo "<center><TABLE WIDTH=3D100%>
>         <TR>
>           <TD><div id=3D'ta'> N&deg;</div></TD>
>           <TD><div id=3D'ta'> Login </div></TD>
>           <TD><div id=3D'ta'> Clave </div></TD>
>           <TD><div id=3D'ta'> Nombre </div></TD>
>           <TD><div id=3D'ta'> Apellido </div></TD>
>           <TD><div id=3D'ta'> Glosa </div></TD>
>           <TD><div id=3D'ta'> Borrar</div></TD>
>         </TR>";
>
> $num_fila =3D 0;
> $in=3D1+(($pagina-1)*5);
> while($arr =3D pg_fetch_array($rs)){
>     echo "<tr";
>     if ($num_fila % 2!=3D0)
>        {echo "bgcolor=3D#d2e6ff"; }
>     else
>      {  echo "bgcolor=3D#e9f1ff"; }
>     echo ">";
>     	echo "<td><b>$in</b></td>";
>  	echo "<td>Login: <b>",$arr["login_id"],"</b>";
> 	echo "<td>Clave: <b>",$arr["clave_usuario"],"</b></td>";
> 	echo "<td>Nombre: <b>", $arr["nombre_usuario"],"</b></td>";
> 	echo "<td>Apellido: <b>", $arr["apellido_usuario"],"</b></td>";
> 	echo "<td>Glosa: <b>", $arr["glosa_usuario"],"</b></td>";
> 	echo"</td><td align=3Dcenter><input type=3Dcheckbox name=3Dborrar
> value=3D'Si'></td></tr>";
>     $num_fila++;
>     $in++;
>     }
> echo "<td colspan=3D5 align=3Dcenter><br><input type=3Dsubmit value=3D'El=
iminar
> registros marcados'>&nbsp;<input type=3Dreset value=3D'Borrar el
> formulario'>
> </form>";
> echo "</TABLE></center>";
>
> pg_close($conexion);
>
> if ($total_paginas > 1){
>     for ($i=3D1;$i<=3D$total_paginas;$i++){
>        if ($pagina =3D=3D $i)
>           echo $pagina . " ";
>        else
>           echo "<a href=3D'005.php?pagina=3D" . $i . "&criterio=3D" .
> $txt_criterio . "'> - " . $i . "- </a> <br>";
>     }
> }
> ?>
>
>
> Saludos

=2D-=20
 12:04:02 up 13 days, 18:21,  4 users,  load average: 0.70, 0.68, 0.53
=2D----------------------------------------------------------------
Mart=C3=ADn Marqu=C3=A9s        | select 'mmarques' || '@' || 'unl.edu.ar'
Centro de Telematica  |  DBA, Programador, Administrador
             Universidad Nacional
                  del Litoral
=2D----------------------------------------------------------------