Newsgroup: it.comp.www.php
Titolo: paginazione e dati mancanti

Ho utilizzato la guida presente su 
freephp.it
 per la paginazione nelle
pagine del mio sito.
Ho perň un problema.
I miei dati da inserire attraverso un form, hanno un campo
'approvato'(default=0) con il quale permetto la visualizzazione dei soli
dati approvati dal sottoscritto (0=non approvato, 1=approvato). Di default č
impostato a 0, che poi io dopo un controllo modifico in 1 e quindi viene
autoamticamente visualizzato dallo script.
Il problema č che se nelle query (su entrambe) ci metto la condizione (WHERE
approvato = '$approvato' ) visualizzo solo alcuni dati (solo 8 pagine
rispetto alle normali 24), se non ce la metto invece visualizzo tutti i dati
(24 pagine) correttamente ma senza purtroppo il filtro dell'approvazione.
Ecco il codice (quello con la condizione WHERE) per capirci meglio:
// esecuzione prima query
$approvato = "1";
$count = mysql_query("SELECT * FROM track WHERE approvato = '$approvato'
ORDER BY artista");
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[0];
// risultati per pagina(secondo parametro di LIMIT)
$per_page = 25;
// numero totale di pagine
$tot_pages = ceil($tot_records / $per_page);
// pagina corrente
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
echo  "
 <table width=\"100%\" border=\"1\" bordercolor=#CCCCCC cellspacing=\"0\"
cellpadding=\"3\" bordercolordark=\"#FFFFFF\" class=\"piccolo\">
  <tr bgcolor=\"#efefef\">
        <td><div align=\"center\"><font
color=#00000><b>ARTISTA</b></font></div></td>
        <td><div align=\"center\"><font
color=#00000><b>TRACK</b></font></div></td>
    <td><div align=\"center\"><font
color=#00000><b>ALBUM</b></font></div></td>
       <td><div align=\"center\"><font
color=#00000><b>DURATA</b></font></div></td>
        <td><div align=\"center\"><font
color=#00000><b>BPM</b></font></div></td>
    </tr>
  ";
// esecuzione seconda query con LIMIT
$query_limit = mysql_query("SELECT * FROM track WHERE approvato =
'$approvato' ORDER BY artista LIMIT $primo, $per_page");
while ($valori = mysql_fetch_array ($query_limit)){
$a1 = $valori [ "artista"];
$a2 = $valori [ "titolo"];
$a3 = $valori [ "album"];
$a4 = $valori [ "durata"];
$a5 = $valori [ "rpm"];
echo  "
  <tr bgcolor=\"#ffffff\">
    <td width=\"20%\" align=\"center\">$a1</td>
    <td width=\"20%\" align=\"center\">$a2</td>
    <td width=\"20%\" align=\"center\">$a3</td>
    <td width=\"5%\" align=\"center\">$a4</td>
    <td width=\"5%\" align=\"center\">$a5</td>
  </tr>";
}
echo  "</table>";
// includiamo uno dei files contenenti la paginazione, commentate l'altro
ovviamente
include("paginazione1.php");
//include("paginazione_2.php");
// in questa cella inseriamo la paginazione
echo "<table width=\"100%\" border=\"1\" bordercolor=#CCCCCC
cellspacing=\"0\" cellpadding=\"3\" bordercolordark=\"#FFFFFF\"
class=\"piccolo\">";
echo " <tr align=center>\n <td >$paginazione</td>\n</tr>";
echo " </table>";
mysql_close();
?>

 $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
Evita questo costrutto, utilizza if {} else {}
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
-- 
I'am what I'am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1