Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

paginacion php + postgres

Estas en el tema de paginacion php + postgres en el foro de PostgreSQL en Foros del Web. modifique un (http://jpinedo.webcindario.com/scripts/paginator/ejemplos.html) paginador para mysql y esta listo para postgres si necesitan por favor enviar un correo a [email protected] pronto publicare el codigo mientras ...
  #1 (permalink)  
Antiguo 10/11/2007, 17:48
 
Fecha de Ingreso: noviembre-2007
Ubicación: www.shiftcolombia.com Villavicencio, Colombia
Mensajes: 9
Antigüedad: 17 años
Puntos: 0
Información paginacion php + postgres

modifique un (http://jpinedo.webcindario.com/scripts/paginator/ejemplos.html) paginador para mysql y esta listo para postgres si necesitan por favor enviar un correo a [email protected] pronto publicare el codigo mientras lo organizo

<?php
$con = pg_connect("host=localhost port=5432 user=postgres password=root dbname=dbFacBasicas");
$conecta=pg_connect($con);
//Sentencia sql (sin limit)
$_pagi_sql = "SELECT * FROM ubicacion ORDER BY codubicacion";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos = 4;
$_pagi_nav_num_enlaces = 2;
include("paginator.inc.php");
while($row = pg_fetch_array($_pagi_result)){
echo $row['nombreubicacion']."<br />";
}
//Incluimos la barra de navegación
echo"<p>".$_pagi_navegacion."</p>";
?>

Última edición por shift; 18/11/2007 a las 16:00 Razón: Actualizar datos
  #2 (permalink)  
Antiguo 18/11/2007, 10:32
 
Fecha de Ingreso: noviembre-2007
Ubicación: www.shiftcolombia.com Villavicencio, Colombia
Mensajes: 9
Antigüedad: 17 años
Puntos: 0
Re: paginacion php + postgres

est es la continacion del script

/**********PAGINADOR.INC.PHP******/

<?php

if(empty($_pagi_sql)){

die("<b>Error Paginator : </b>No se ha definido la variable \$_pagi_sql");
}

if(empty($_pagi_cuantos)){

$_pagi_cuantos = 20;
}

if(!isset($_pagi_mostrar_errores)){

$_pagi_mostrar_errores = true;
}

if(!isset($_pagi_conteo_alternativo)){

$_pagi_conteo_alternativo = false;
}

if(!isset($_pagi_separador)){

$_pagi_separador = " | ";
}

if(isset($_pagi_nav_estilo)){

$_pagi_nav_estilo_mod = "class=\"$_pagi_nav_estilo\"";
}else{

$_pagi_nav_estilo_mod = "";
}

if(!isset($_pagi_nav_anterior)){

$_pagi_nav_anterior = "&laquo; Anterior";
}

if(!isset($_pagi_nav_siguiente)){

$_pagi_nav_siguiente = "Siguiente &raquo;";
}

if(!isset($_pagi_nav_primera)){

$_pagi_nav_primera = "&laquo;&laquo; Primera";
}

if(!isset($_pagi_nav_ultima)){

$_pagi_nav_ultima = "&Uacute;ltima &raquo;&raquo;";
}
if (empty($_GET['_pagi_pg'])){

$_pagi_actual = 1;
}else{

$_pagi_actual = $_GET['_pagi_pg'];
}

if($_pagi_conteo_alternativo == false){
echo "fredy";
$con = pg_connect("host=localhost port=5432 user=postgres password=root dbname=dbFacBasicas");
$_pagi_sqlConta = "SELECT COUNT(*) as a FROM (".$_pagi_sql.") as f";
$_pa2 =pg_query($con,$_pagi_sqlConta);
$_pagi_result2 = pg_result($_pa2,"0","a");

if($_pagi_result2 == false && $_pagi_mostrar_errores == true){
die (" parra Error en la consulta de conteo de registros: $_pagi_sqlConta. // xxxxxxxxxxx$_pagi_result2xxxxxx postgres dijo: <b>".pg_result_error($_pa2)."</b>");
}
echo"aja cantidad de registros".$_pagi_result2;
$_pagi_totalReg=pg_result($_pa2,"0","a");
echo"total deregistros".$_pagi_totalReg;

}else{
$_pagi_result3=pg_query($con,$_pagi_sql);

if($_pagi_result3 == false && $_pagi_mostrar_errores == true){
die (" Error en la consulta de conteo alternativo de registros: $_pagi_sql. eche dijo: <b>".pg_error($con)."</b>");
}
$_pagi_totalReg=pg_numrows($_pagi_result3);

}

$_pagi_totalPags = ceil($_pagi_totalReg / $_pagi_cuantos);


$_pagi_enlace = $_SERVER['PHP_SELF'];
$_pagi_query_string = "?";

if(!isset($_pagi_propagar)){

if (isset($_GET['_pagi_pg'])) unset($_GET['_pagi_pg']);
$_pagi_propagar = array_keys($_GET);
}elseif(!is_array($_pagi_propagar)){

die("<b>Error Paginator : </b>La variable \$_pagi_propagar debe ser un array");
}

foreach($_pagi_propagar as $var){
if(isset($GLOBALS[$var])){

$_pagi_query_string.= $var."=".$GLOBALS[$var]."&";
}elseif(isset($_REQUEST[$var])){

$_pagi_query_string.= $var."=".$_REQUEST[$var]."&";
}
}


$_pagi_enlace .= $_pagi_query_string;

$_pagi_navegacion_temporal = array();
if ($_pagi_actual != 1){

$_pagi_url = 1;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_primera</a>";


$_pagi_url = $_pagi_actual - 1;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_anterior</a>";
}

if(!isset($_pagi_nav_num_enlaces)){

$_pagi_nav_desde = 1;
$_pagi_nav_hasta = $_pagi_totalPags;
}else{

$_pagi_nav_intervalo = ceil($_pagi_nav_num_enlaces/2) - 1;


$_pagi_nav_desde = $_pagi_actual - $_pagi_nav_intervalo;

$_pagi_nav_hasta = $_pagi_actual + $_pagi_nav_intervalo;




if($_pagi_nav_desde < 1){

$_pagi_nav_hasta -= ($_pagi_nav_desde - 1);

$_pagi_nav_desde = 1;
}

if($_pagi_nav_hasta > $_pagi_totalPags){

$_pagi_nav_desde -= ($_pagi_nav_hasta - $_pagi_totalPags);

$_pagi_nav_hasta = $_pagi_totalPags;

if($_pagi_nav_desde < 1){
$_pagi_nav_desde = 1;
}
}
}

for ($_pagi_i = $_pagi_nav_desde; $_pagi_i<=$_pagi_nav_hasta; $_pagi_i++){
if ($_pagi_i == $_pagi_actual) {

$_pagi_navegacion_temporal[] = "<span ".$_pagi_nav_estilo_mod.">$_pagi_i</span>";
}else{

$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_i."'>".$_ pagi_i."</a>";
}
}

if ($_pagi_actual < $_pagi_totalPags){

$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_siguiente</a>";


$_pagi_url = $_pagi_totalPags;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_ultima</a>";
}
$_pagi_navegacion = implode($_pagi_separador, $_pagi_navegacion_temporal);

$_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;

$_pagi_sqlLim = $_pagi_sql." LIMIT $_pagi_cuantos OFFSET $_pagi_inicial";
$_pagi_result = pg_query($_pagi_sqlLim);

echo $_pagi_result;
if($_pagi_result == false && $_pagi_mostrar_errores == true){
die ("Error en la consulta limitada: $_pagi_sqlLim. Mysql dijo: <b>".pg_error($con)."</b>");
}

$_pagi_desde = $_pagi_inicial + 1;

$_pagi_hasta = $_pagi_inicial + $_pagi_cuantos;
if($_pagi_hasta > $_pagi_totalReg){

$_pagi_hasta = $_pagi_totalReg;
}

$_pagi_info = "desde el $_pagi_desde hasta el $_pagi_hasta de un total de $_pagi_totalReg";


?>
/********fin ********/
  #3 (permalink)  
Antiguo 17/01/2008, 11:58
 
Fecha de Ingreso: septiembre-2004
Ubicación: Maracay Edo. Aragua
Mensajes: 45
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: paginacion php + postgres

alguien me podria decir como pedo paginar sin usar base de datos... lo cierto es que tengo una pagina con un codigo que extrae las fotos de una carpeta en el servidor este codigo ya trae una paginacion apra ellas pero me muestra el enlase de siguiente pero cuando le doy a siguiente no me lo pagina... el codigo lo coloque en el siguiente foro http://www.forosdelweb.com/f18/script-para-paginar-fotos-471618/#post2252482 si alguien consigue la solucion agradesco me ayuden
  #4 (permalink)  
Antiguo 18/01/2008, 02:30
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: paginacion php + postgres

Todo es codigo php, esto que tiene que ver con Base de Datos???????
  #5 (permalink)  
Antiguo 26/01/2008, 17:37
 
Fecha de Ingreso: noviembre-2007
Ubicación: www.shiftcolombia.com Villavicencio, Colombia
Mensajes: 9
Antigüedad: 17 años
Puntos: 0
juanmandi

para ello existen algunos script en javascript para lo de las fotos yo hice un truquito con ajax pero guardo las direciones de las fotos en una base de datos
visita www.eltiempo.com
y en los reportajes graficos te daras cuenta
  #6 (permalink)  
Antiguo 14/05/2008, 17:43
 
Fecha de Ingreso: julio-2007
Ubicación: /home/victor
Mensajes: 114
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: paginacion php + postgres

Hola:

Queria comentar acerca del script, ya que me parece, simple y útil (a menudo la solución mas sencilla es la mejor - filosofia Unix -); pero lo que no me parece es que a propósito pongan el còdigo con errores, simplemente para que otros se den de cabezazos tratando de ejecutarlo correctamente. Creo que eso es arrogante y de una prepotencia intelectual poco honesta y detestable. Si de verdad quieren aportar; pues aporten como caballeros y con la fidelidad que la situaciòn lo amerita.

Aca dejo el codigo corregido, que tan gentilmente shift dejò a medias.

paginator.inc.php

Código PHP:

<?php

if(empty($_pagi_sql)){

die(
"<b>Error : </b>No se ha definido la variable \$_pagi_sql");
}

if(empty(
$_pagi_cuantos)){

$_pagi_cuantos 20;
}

if(!isset(
$_pagi_mostrar_errores)){

$_pagi_mostrar_errores true;
}

if(!isset(
$_pagi_conteo_alternativo)){

$_pagi_conteo_alternativo false;
}

if(!isset(
$_pagi_separador)){

$_pagi_separador " | ";
}

if(isset(
$_pagi_nav_estilo)){

$_pagi_nav_estilo_mod "class=\"$_pagi_nav_estilo\"";
}else{

$_pagi_nav_estilo_mod "";
}

if(!isset(
$_pagi_nav_anterior)){

$_pagi_nav_anterior "&laquo; Anterior";
}

if(!isset(
$_pagi_nav_siguiente)){

$_pagi_nav_siguiente "Siguiente &raquo;";
}

if(!isset(
$_pagi_nav_primera)){

$_pagi_nav_primera "&laquo;&laquo; Primera";
}

if(!isset(
$_pagi_nav_ultima)){

$_pagi_nav_ultima "&Uacute;ltima &raquo;&raquo;";
}
if (empty(
$_GET['_pagi_pg'])){

$_pagi_actual 1;
}else{

$_pagi_actual $_GET['_pagi_pg'];
}

if(
$_pagi_conteo_alternativo == false){

$con pg_connect("host=localhost port=5432 user=postgres password=123123 dbname=mibase");
$_pagi_sqlConta "SELECT COUNT(*) as a FROM (".$_pagi_sql.") as f";
$_pa2 =pg_query($con,$_pagi_sqlConta);
$_pagi_result2 pg_result($_pa2,"0","a");

if(
$_pagi_result2 == false && $_pagi_mostrar_errores == true){
die (
" parra Error en la consulta de conteo de registros: $_pagi_sqlConta. // xxxxxxxxxxx$_pagi_result2xxxxxx postgres dijo: <b>".pg_result_error($_pa2)."</b>");
}
echo
"Cantidad de registros ".$_pagi_result2;
$_pagi_totalReg=pg_result($_pa2,"0","a");
echo
"\ntotal de registros".$_pagi_totalReg;

}else{
$_pagi_result3=pg_query($con,$_pagi_sql);

if(
$_pagi_result3 == false && $_pagi_mostrar_errores == true){
die (
" Error en la consulta de conteo alternativo de registros: $_pagi_sql. eche dijo: <b>".pg_error($con)."</b>");
}
$_pagi_totalReg=pg_numrows($_pagi_result3);

}

$_pagi_totalPags ceil($_pagi_totalReg $_pagi_cuantos);


$_pagi_enlace $_SERVER['PHP_SELF'];
$_pagi_query_string "?";

if(!isset(
$_pagi_propagar)){

if (isset(
$_GET['_pagi_pg'])) unset($_GET['_pagi_pg']);
$_pagi_propagar array_keys($_GET);
}elseif(!
is_array($_pagi_propagar)){

die(
"<b>Error Paginator : </b>La variable \$_pagi_propagar debe ser un array");
}

foreach(
$_pagi_propagar as $var){
if(isset(
$GLOBALS[$var])){

$_pagi_query_string.= $var."=".$GLOBALS[$var]."&";
}elseif(isset(
$_REQUEST[$var])){

$_pagi_query_string.= $var."=".$_REQUEST[$var]."&";
}
}


$_pagi_enlace .= $_pagi_query_string;

$_pagi_navegacion_temporal = array();
if (
$_pagi_actual != 1){

$_pagi_url 1;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_primera</a>";


$_pagi_url $_pagi_actual 1;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_anterior</a>";
}

if(!isset(
$_pagi_nav_num_enlaces)){

$_pagi_nav_desde 1;
$_pagi_nav_hasta $_pagi_totalPags;
}else{

$_pagi_nav_intervalo ceil($_pagi_nav_num_enlaces/2) - 1;


$_pagi_nav_desde $_pagi_actual $_pagi_nav_intervalo;

$_pagi_nav_hasta $_pagi_actual $_pagi_nav_intervalo;




if(
$_pagi_nav_desde 1){

$_pagi_nav_hasta -= ($_pagi_nav_desde 1);

$_pagi_nav_desde 1;
}

if(
$_pagi_nav_hasta $_pagi_totalPags){

$_pagi_nav_desde -= ($_pagi_nav_hasta $_pagi_totalPags);

$_pagi_nav_hasta $_pagi_totalPags;

if(
$_pagi_nav_desde 1){
$_pagi_nav_desde 1;
}
}
}

for (
$_pagi_i $_pagi_nav_desde$_pagi_i<=$_pagi_nav_hasta$_pagi_i++){
if (
$_pagi_i == $_pagi_actual) {

$_pagi_navegacion_temporal[] = "<span ".$_pagi_nav_estilo_mod.">$_pagi_i</span>";
}else{

$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_i."'>".$_pagi_i."</a>";
}
}

if (
$_pagi_actual $_pagi_totalPags){

$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_siguiente</a>";


$_pagi_url $_pagi_totalPags;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_ultima</a>";
}
$_pagi_navegacion implode($_pagi_separador$_pagi_navegacion_temporal);

$_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;

$_pagi_sqlLim $_pagi_sql." LIMIT $_pagi_cuantos OFFSET $_pagi_inicial";
$_pagi_result pg_query($_pagi_sqlLim);

echo 
$_pagi_result;
if(
$_pagi_result == false && $_pagi_mostrar_errores == true){
die (
"Error en la consulta limitada: $_pagi_sqlLim. Mysql dijo: <b>".pg_error($con)."</b>");
}

$_pagi_desde $_pagi_inicial 1;

$_pagi_hasta $_pagi_inicial $_pagi_cuantos;
if(
$_pagi_hasta $_pagi_totalReg){

$_pagi_hasta $_pagi_totalReg;
}

$_pagi_info "desde el $_pagi_desde hasta el $_pagi_hasta de un total de $_pagi_totalReg";

?>
prueba.php

Código PHP:
 
<?php
$con 
="host=localhost port=5432 user=postgres password=123123 dbname=mibase";
$conecta=pg_connect($con);
//Sentencia sql (sin limit)
$_pagi_sql "SELECT * FROM socios";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 8;
$_pagi_nav_num_enlaces 1;
include(
"paginator.inc.php");
while(
$row pg_fetch_array($_pagi_result)){
echo 
$row['nombresocio']. $row['apellido1socio']. $row['apellido2socio']."<br />";
}
//Incluimos la barra de navegación
echo"<p>".$_pagi_navegacion."</p>";
?>
  #7 (permalink)  
Antiguo 05/06/2008, 07:42
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
De acuerdo Respuesta: paginacion php + postgres

Estimados me di cuenta que a este ultimo script igual le falto una linea de codigo la que permite ingrementar el numero de la pagina al link siguiente estonces esto seria haci:


if ($_pagi_actual < $_pagi_totalPags){

$_pagi_url = $_pagi_actual + 1;
//$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_siguiente</a>";

// Ademas de modificar los links para que solo apareciera la palabra siguiente

$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod2." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_siguiente</a>";

$_pagi_url = $_pagi_totalPags;
//$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_ultima</a>";

// Ademas de modificar los links para que solo apareciera la palabra siguiente

$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod2." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_ultima</a>";
}
  #8 (permalink)  
Antiguo 05/06/2008, 07:49
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: paginacion php + postgres

Ahora bien quisiera poner como tema: realizar las modificaciones pertinentes para que el pagineator funcione atravez de una busqueda parametrizada osea que recolecte información de un formulario ya sea POST o GET y en base a eso realice una busqueda y pagine los resultados
  #9 (permalink)  
Antiguo 18/07/2008, 15:02
 
Fecha de Ingreso: noviembre-2007
Ubicación: www.shiftcolombia.com Villavicencio, Colombia
Mensajes: 9
Antigüedad: 17 años
Puntos: 0
Respuesta: paginacion php + postgres

en el archivo prueba recibes los parametros y acomodas la consulta y ya
  #10 (permalink)  
Antiguo 24/10/2010, 14:44
 
Fecha de Ingreso: octubre-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Respuesta: paginacion php + postgres

les pido una ayuda

es mas quetodo de estetica con un paginador q estoy implementando de PHPSense me funciona perfectamente solo que el navegador del paginador es decir por donde me muevo por cada pagina me aparece arriba de la tabla donde aparecen mis rsultados yo quisiera q apareciera abajo es decir moverlo de esa posicion y pues soy novato en estas cosas y ya ebuscado mucho y no encuntro omo hacerlo :S talves alguien me pued aportar un granito de arena para este dolor de cabeza je gracias de antemano
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 11:38.