Foros del Web » Programando para Internet » PHP »

Problema con paginador en php y postgres

Estas en el tema de Problema con paginador en php y postgres en el foro de PHP en Foros del Web. Hola que tal??? Estoy paginando los valores que resultan de una busqueda y me muestra el primer registro pero cuando pagino los demas no los ...
  #1 (permalink)  
Antiguo 19/11/2009, 09:20
 
Fecha de Ingreso: septiembre-2009
Mensajes: 27
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema con paginador en php y postgres

Hola que tal???

Estoy paginando los valores que resultan de una busqueda y me muestra el primer registro pero cuando pagino los demas no los muestra, y el ciclo es en mi pagina index.php yo recibo un codigo y dependiendo de ese es que busca y sigue a la vista //localhost/foo2/listado.php y es aqui donde me muestra el primer registro y los numeros de la paginacion.

Pero cuando le doy a siguiente me monta el url //localhost/foo2/listado.php?pagina=2 y si le doy a anterior monta la siguiente url //localhost/foo2/listado.php?pagina=1 y nunca se decuelve a la //localhost/foo2/listado.php] que es donde me sale el primer registro.

Les muestro mi codigo, todo esto esta en listado.php:

$registros= 1;
$pagina= $_GET["pagina"];
if (!$pagina)
{
$inicio = 0;
$pagina = 1;
}
else
{
$inicio = ($pagina - 1) * $registros;
}



$resultados = pg_query("SELECT c.reg, c.indicador, c.ano, c.fecha_revi,c.status, count (*) as total
FROM certificado c
WHERE c.reg=$reg AND c.indicador='$indicador' AND c.ano='$ano' GROUP BY c.reg, c.indicador, c.ano, c.fecha_revi,c.status");
$total_registros = pg_num_rows($resultados);

$sql_select_1 = "SELECT c.reg, c.indicador, c.ano, c.fecha_revi,c.status, count (*) as total
FROM certificado c
WHERE c.reg=$reg AND c.indicador='$indicador' AND c.ano='$ano' GROUP BY c.reg, c.indicador, c.ano, c.fecha_revi,c.status LIMIT '$registros' OFFSET '$inicio'";
$query_select_1 = pg_query($con, $sql_select_1);
//print_r($sql_select_1);die;
$query_result_1 = pg_fetch_object($query_select_1);

$total_paginas = ceil($total_registros / $registros);

<?php if($rs=pg_Exec($con,$sql_select_1)){
while($row=pg_fetch_array($rs))
{
$reg= $row[reg];
$indicador= $row[indicador];
$ano= $row[ano];
$fecha= $row[fecha_revi];
$total= $row[total];
?>
<label>N&uacute;mero de Registro:
<input disabled type="text" size="40" name="registro" value="<?php echo $codigo[0].$codigo[1].'-'.$codigo[2]?>"></label>
<label>Fecha deInspecci&oacute;n:
<input disabled type="text" size="40" name="registro" value="<?php echo cambiarFormatoFecha($fecha)?>"></label>
<label>Total Certificados para la Fecha:
<input disabled type="text" size="40" name="registro" value="<?php echo $total?>"></label>

<?php }

pg_free_result($query_select_1);
}else{ echo "No Existen registros";}

print("<td>");
print("<td align=center>");
echo paginar($pagina,$total_registros, $registros, 'listado.php?pagina=');
print("</td>");
print("</tr>");

pg_close($con);
?>


el paginar.php:
function paginar($actual, $total, $por_pagina, $enlace) {
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href=\"$enlace$anterior\">Anterior</a> ";
//else
//$texto = "<b>&laquo;</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href=\"$enlace$posterior\">Siguinte</a>";
//else
// $texto .= "<b>&raquo;</b>";
return $texto;
}
?>

espero puedan ayudarme, aunque supongo que es porque la primera ves que muestra el registro la url no dice pagina 1 de una vez sino simplemente listado y por eso es que no debe de paginar..,

Gracias de antemano, espero sus ayudas....
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 18:45.