Vi posto il codice della mia pagina PHP....non mi da alcun errore eppure non funziona...mah...
PAGINA1: paginazione.php
<?php
require "include/paginazione.inc.php";
$c=oci_connect("xxx", "xxx", "xxx");
$webpage = basename($_SERVER['PHP_SELF']);
$page = (!isset($_GET['page']))? 1 : $_GET['page'];
echo "questa è la pagina".$page."
";
$queryprima=oci_parse($c,"select count(*) from cons_esami_assegnare");
oci_execute($queryprima);
while (($ris=oci_fetch_array($queryprima, OCI_ASSOC))){
foreach ($ris as $pippo){
echo ($pippo !== null ? htmlentities($pippo, ENT_QUOTES) :"");
}
}
$max_results = 20;//numero di elementi da visualizzare per pagina.
$total_results = $pippo;
$total_pages = ceil($total_results / $max_results);
$from = (($page * $max_results) - $max_results)+1;
$queryprima=oci_parse($c,"select c1,c2,c3,c4,c5,c6,c7
from (select rownum r,t.laboratorio c1, t.richiesta c2, t.esame c3,
t.campioni c4, to_date(t.dataaccettazione,'dd-mm-yyyy') c5,
t.giornipassatiaccettazione c6,
t.giornicartaservizi c7
from cons_esami_assegnare t)
where r between $from and $max_results");
oci_execute($queryprima);
echo "<table border=1 width='100%'>\n<tr><font color='#6666CC'>";
echo "<tr><font color='#6666CC'><td align='center'>Laboratorio</td><td align='center'>Richiesta</td><td align='center'>Esame</td><td align='center'>Campioni</td><td align='center'>Data Accettazione</td><td align='center'>Giorni Passati Accettazione</td><td align='center'>Giorni Carta Servizi</td></font></tr>\n";
echo "<tr><font color='#6666CC'>";
while (($riga=oci_fetch_array($queryprima, OCI_ASSOC+OCI_RETURN_NULLS))){
foreach ($riga as $item){
echo " <td align='center'>". ($item !== null ? htmlentities($item, ENT_QUOTES) :""). "</td>\n";
}
echo "</font></tr>\n";
}
echo "</font></tr></table>\n";
echo pagination_3($total_pages, $page, $webpage);
oci_close($c);
?>
PAGINA2: paginazione.inc.php
<?php
function pagination_3($total_pages,$page,$webpage){ //imposto la mia $webpage come parametro formale
$pagination = "";
if($total_pages!=1){
if($page>'1')
{
$pagination.="prima
Prev";
}
//Impostiamo il massimo numero di links di partenza da visualizzare nella pagina.
$maximum_links = 10;
//Se sono necessarie meno pagine rispetto al numero massimo
if($total_pages<=$maximum_links)
{
//Il numero massimo di links che occorreranno saranno pari al numero totale di pagine + 1
$maximum_links = $total_pages+1;
}
//Se ne sono necessarie di piu, allora:
else{
//$maximum_links +1
$maximum_links=$maximum_links+1;
if($page>=$maximum_links){
$maximum_links=$page+1;
}
}
for ($i=1;$i<$maximum_links;$i++)
{
if($i==$page){
$pagination.="<a>".$i."</a>";
}
else{
$pagination.= "".$i."";
}
}
//next e ultima pagina;
if(($page >="1")&&($page!=$total_pages)){
$pagination.= "Next
ultima";
}
}
else{
$pagination.="";
}
return($pagination);
}
?>
In Pratica ho una pagina nella quale vengono visualizzati i record di una tabella. Dato che sono tanti li ho divisi in più pagine, 20 per pagina. Tutto funziona e non mi da alcun errore, solo che nel momento in cui clicco per andare alla seconda pagina mi visualizza solo l'intestazione della colonna senza i record (idem per le pagine successive).
La query funziona, l'ho provata...![]()
Ah...una cosa che vi potrebbe essere utile...in ORACLE non parte a contare dal record 0 ma dall'1...infatti in qst formula "$from = (($page * $max_results) - $max_results)+1;" all'inizio non avevo messo +1 e nella seconda pagina mi faceva vedere l'ultimo record della prima pagina...
Mah....non capisco proprio perchè!!!!