Ciao, grazie per la risposta.
Ho provato ad adattare il codice al mio, ma non ci sono riuscito, il risultato ottenuto non è quello sperato..
Ecco cosa ho fatto, questa è galleria.php:
Codice PHP://Conto quanti record sono presenti nella table
$count = mysql_query("SELECT COUNT(ID) FROM galleria");
$res_count = mysql_fetch_row($count);
$tot_records = $res_count[0];
//Risultati per pagina(secondo parametro di LIMIT)
$ris_for_row=$_POST['righe'];
$ris_for_col=$_POST['colonne'];
$ris_for_page = $ris_for_row*$ris_for_col;
//Function ceil arrotonda al primo valore interno più alto
$tot_pages = ceil($tot_records / $ris_for_page);
//DEBUG
echo "Tot records: ".$tot_records." Ris for page: ".$ris_for_page." Tot pages: ".$tot_pages;
//Setto la pagina corrente
if (!$_GET['page']) {
$current_page = 1;
}
else $current_page = $_GET['page'];
//Setto var di sessione da usare nella pagina di paging
$_SESSION['tot_pages']=$tot_pages;
$_SESSION['current_page']=$current_page;
//primo parametro di LIMIT
$first_limit=($current_page-1)*$ris_for_page;
//Query con LIMIT
$query_limit = mysql_query("SELECT ID, link, Descrizione FROM galleria LIMIT $first_limit, $ris_for_page");
//Scorro l'array fino in fondo
$n=0;
while ($n < $tot_records) {
echo "<tr>";
//A seconda della quantità di oggetti per riga, ciclo il fetch dei risultati all'interno di un ciclo for
for ($i=0;$i<$ris_for_row;$i++) {
$results = mysql_fetch_assoc($query_limit);
echo "<td>";
echo "<a href=\"page.php?ID=" . $results['ID'] . "\"></a>";
echo "<td wIDth=\"33%\">\n";
echo"<div align='center'>";
echo '<img width="200" height="160" style="cursor: -moz-zoom-in;" img src="'.$results['link'].' " onclick="this.width=596;this.height=435;" ondblclick="this.width=200;this.height=160;"/>';
echo"</div>";
echo" <font size='4' color='yellow'>";
echo" <b>" ;
echo "<br />" .$results['Descrizione'];
echo "</b>";
echo "</font>";
echo "</td>\n";
$n++;
}
echo "</tr>\n";
}
//includo il file contenente la paginazione
include("paginazione.php");
echo "<div align=\"center\">";
echo "".$paginazione;
echo "</div>";
mysql_close();
?>
e questa paginazione.php
Se vado ad inserire come numero righe e numero colonne 3, mi deve stampare 9 imamgini, e lo fa, solo che mi stampa altre 3 celle (cosa che non dovrebbe fare) anche perchèCodice PHP:<?php
//Recupero le variabili settate nella pagina di "principale"
$current_page=($_SESSION['current_page']);
$tot_pages=($_SESSION['tot_pages']);
//Se siamo nella prima pagina
if ($current_page == 1) {
$prev = "<< prev";
}
else {
$previous_page = ($current_page - 1);
$prev = "<a href=\"page.php?page=$previous_page\" title=\"Previous\" TARGET=\"_parent\"><< prev</a>";
}
//Creo la lista
$list="[ ";
for($i = 1; $i <= $tot_pages; $i++) {
if($i == $current_page) {
$list= $list . $i . " ";
}
else {
$list= $list . "<a href=\"page.php?page=$i\" title=\"Vai alla pagina $i\" TARGET=\"_parent\">$i</a> ";
}
}
$list= $list . "]";
//Se siamo nell'ultima pagina
if($current_page == $tot_pages)
$next = "next >>";
else
{
$next_page = ($current_page + 1);
$next = "<a href=\"page.php?page=$next_page\" title=\"Next\" TARGET=\"_parent\">next >></a>";
}
//Compongo la stringa da mostrare
$paginazione = "$prev     $list     $next";
?>
Tot records: 12 Ris for page: 9 Tot pages: 2
quindi deve farmi 2 pagine, ma questo non avviene...
Dove sbaglio?
Grazie!

Rispondi quotando
