Estoy intentando hacer una paginación para php conectado con servidor oracle, mediante la conexión oci...con el mysql era muy facil mediante el LIMIT pero aquí se tiene que hacer con un between...y es mucho más complicado.
Por ejemplo, tengo 4 registros y quiero que me muestre los 2 primeros en la primera página y los 2 segundos en la segunda página...y me muestra los 2 últimos en la primera página y en la segunda me muestra solo uno, el último...no funciona bien...alguien localiza el posible error? :S
Código PHP:
$tamanyPagina = 2; //nº resultados por página
$pagina = $_GET["pagina"];
if (!$pagina)
{
$inici = 0;
$pagina = 1;
}
else $inici = ($pagina - 1) * $tamanyPagina;
//----------------------------------------------------------------
$select = oci_parse($conect, "SELECT * FROM (SELECT ROWNUM as id,codigo,nif,nombre,direccion,poblacion,provincia,dpostal,telefono,fax,email,bancocc,formadepago,vencimientos,diadepago,periodo FROM clientes) WHERE id BETWEEN '$inici' AND '$tamanyPagina' ORDER BY provincia,poblacion,nombre");
oci_execute($select);
Código PHP:
$select = oci_parse($conect, 'SELECT COUNT(*) FROM clientes ORDER BY provincia,poblacion,nombre');
oci_execute($select);
$resultatNumero = oci_fetch_array($select);
$numeroRegistres = $resultatNumero[0];
$totalPagines = ceil($numeroRegistres / $tamanyPagina);
echo "<br>";
if ($totalPagines > 1)
{
echo "[";
for ($i = 1; $i <= $totalPagines; $i++)
{
if ($pagina == $i) echo $pagina . " "; //no mostramos el enlace a la página actual
else echo "<a href='clientsTots.php?pagina=$i'>" . $i . "</a> ";
}
echo "]";
}