PHP - paginacion oracle-php

   
Vista:

paginacion oracle-php

Publicado por garcia (2 intervenciones) el 31/01/2014 14:44:02
Saludos a todos, he estado investigando sobre la paginacion en oracle y tengo el siguiente codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
$con = oci_connect("localhost", "contraseña", "bd");
if (!$con) {
$m = oci_error();
echo $m['message'], "\n";
exit;
}
else {
//echo "Conexión con éxito a Oracle!";
}
 
 
$noRegistros = 5; //Registros por página
$pagina = 1; //Por default, página = 1
if($_GET["pagina"]) //Si hay página por ?pagina=valor, lo asigna
$pagina = $_GET["pagina"];
echo "Pagina: ".$pagina."<hr>";
 
 
$inicio=(($pagina-1)*$noRegistros);
 
$sSQL=oci_parse($con,"SELECT *
FROM ( SELECT A.nombre, A.apellidos, ROWNUM row_number
FROM (
SELECT nombre,apellidos
FROM ejemplo2
) A
WHERE ROWNUM <= '$noRegistros'
)
WHERE row_number >= '$inicio'");
$r1=oci_execute($sSQL);
 
 
while ( $row = oci_fetch_array($sSQL, OCI_RETURN_LOBS) )
{
echo $row[0]."<br>";
}
 
$result1 = oci_parse($con,"SELECT COUNT(*) AS RecordCount FROM EJEMPLO2");
$r21=oci_execute($result1);
 
while ( $row21 = oci_fetch_array($result1, OCI_RETURN_LOBS) )
{
// $rows[] = $row;
$totalRegistros=$row21[0];
}
 
echo "<hr>Total registros: ".$totalRegistros.", Pagina: ";
$noPaginas = $totalRegistros/$noRegistros; //Determino la cantidad de páginas
for($i=1; $i<$noPaginas+1; $i++) { //Imprimo las páginas
if($i == $pagina)
echo "$i "; //A la página actual no le pongo link
else
echo "<a href=\"?pagina=".$i."\">".$i."</a> ";
 
 
}
 
?>

en la primera pagina me muestra los registros que quiero pero en la segunda me muestra solo uno y es el ultimo registro de la primera pagina, en la tercera ya no me muestra nada.

Serian tan amables de decirme que estoy haciendo mal. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

paginacion oracle-php

Publicado por garcia (2 intervenciones) el 31/01/2014 16:01:41
HE RESUELTO EL PROBLEMA!!, el error estaba en la query la cual he modificado

les dejo el codigo por si le sirve a alguien mas para que no le cueste tanto como ami, gracias!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
 
 
$con = oci_connect("localhost", "pw", "bd");
if (!$con) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   //echo "Conexión con éxito a Oracle!";
}
 
 
$noRegistros = 7; //Registros por página
$pagina = 1; //Por default, página = 1
if($_GET["pagina"]) //Si hay página por ?pagina=valor, lo asigna
    $pagina = $_GET["pagina"];
echo "Pagina: ".$pagina."<hr>";
 
 
 
$sSQL=oci_parse($con,"
SELECT * FROM
(
    SELECT a.*, rownum r__
    FROM
    (
    	SELECT * FROM EJEMPLO2
    	ORDER BY NOMBRE 
    ) a
    WHERE rownum < (($pagina * $noRegistros) + 1 )
)
WHERE r__ >= ((($pagina-1) * $noRegistros) + 1)


");
 
 $r1=oci_execute($sSQL);
 
 
 while ( $row = oci_fetch_array($sSQL, OCI_RETURN_LOBS) )
		{
          echo $row[1]."<br>";
		}
 
 
		$result1 = oci_parse($con,"SELECT COUNT(*) AS RecordCount FROM EJEMPLO2");
		$r21=oci_execute($result1);
 
		while ( $row21 = oci_fetch_array($result1, OCI_RETURN_LOBS) )
		{
		  // $rows[] = $row;
			$totalRegistros=$row21[0];
		}
 
echo "<hr>Total registros: ".$totalRegistros.", Pagina: ";
	$noPaginas = $totalRegistros/$noRegistros; //Determino la cantidad de páginas
for($i=1; $i<$noPaginas+1; $i++) { //Imprimo las páginas
    if($i == $pagina)
        echo "$i "; //A la página actual no le pongo link
    else
        echo "<a href=\"?pagina=".$i."\">".$i."</a> ";
 
 
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

paginacion oracle-php

Publicado por xve (5513 intervenciones) el 31/01/2014 16:32:53
Gracias por comentarlo y compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Anderson

paginacion oracle-php

Publicado por Anderson (4 intervenciones) el 31/05/2014 04:47:06
Muchísimas gracias por compartir tu código amigo, de verdad me sirvió mucho para un proyecto que estoy haciendo en conjunto con unos compañeros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar