- Home
- Categorie
- Coding e Sistemistica
- Coding
- paginazione 10x10
- 
							
							
							
							
							
paginazione 10x10ciao a tutti...ho trovato uno scripting di paginazione che ho capito e che sto usando...funziona tutto solo che ora in una tabella ho più di 100 records e usando questo scripting nella numerazione mi appaiono tutti e non è molto elegante a vedersi per cui vorrei cosapere cosa aggiungere in modo tale che nella numerazione appaiono 10 numeri per volta in questo modo: 
 << < 1 2 3 4 5 6 7 8 9 10 > >>
 quindi poi quando arrivo a alla pagina 9 la numerazione varia così:
 << < 2 3 4 5 6 7 8 9 10 11 > >> e così via...
 qui sotto lo scripting che sto usando:
 <?php
 $x_pag = 1;// Righe per pagina
 $pageNum = 1; // Pagina iniziale di default
 // Recupero il numero di pagina corrente.
 if(isset($_GET['page']))
 {
 $pageNum = $_GET['page'];
 }
 // Uso mysql_num_rows per contare le righe presenti
 // all'interno della tabella
 $all_rows = mysql_num_rows(mysql_query("SELECT * FROM curioso"));
 // Tramite una semplice operazione matematica definisco
 // il numero totale di pagine
 $all_pages = ceil($all_rows / $x_pag);
 $self = $_SERVER['PHP_SELF'];
 $nav = '';
 for($page = 1; $page <= $all_pages; $page++)
 {
 if ($page == $pageNum)
 {
 $nav .= " $page ";
 }
 else
 {
 $nav .= " <a href="$self?page=$page">$page</a> ";
 }
 }
 // Calcolo da quale record iniziare
 $first = ($pageNum - 1) * $x_pag;// Recupero i record per la pagina corrente... 
 // utilizzando LIMIT per partire da $first e contare fino a $x_pag
 $rs = mysql_query("SELECT * FROM curioso c, immagini i WHERE c.id_img = i.id LIMIT $first, $x_pag");
 $nr = mysql_num_rows($rs);
 if ($nr != 0){
 for($x = 0; $x < $nr; $x++){
 $row = mysql_fetch_assoc($rs);
 $immagini = $row['image'];// stampo i records 
 echo " //istruzioni "//creazione dei link next e prev 
 // e il link per andare direttamente in ultima pagina
 if ($pageNum > 1)
 {
 $page = $pageNum - 1;
 $prev = " <a href="$self?page=$page">[Precedente]</a> ";$first = " <a href="$self?page=1">[Prima Pagina]</a> "; 
 }
 else
 {
 $prev = ' ';
 $first = ' ';
 }if ($pageNum < $all_pages) 
 {
 $page = $pageNum + 1;
 $next = " <a href="$self?page=$page">[Prossima]</a> ";$last = " <a href="$self?page=$all_page">[Ultima Pagina]</a> "; 
 }
 else
 {
 $next = ' ';
 $last = ' ';
 }
 //Stampa i link di navigazione
 echo "<table border='0' align='center' cellpadding='5' cellspacing='2' class='database'><tr>";
 echo "<td>" . $first . "</td><td>" . $prev . "</td><td>" . $nav . "</td><td>" . $next . "</td><td>". $last . "</td>";
 echo "</tr></table>";
 ?>grazie e buone feste!!!!!!! 
 
- 
							
							
							
							
							
ancora qui...ho trovato u secondo script per riuscire a far apparire nella paginazione un max di 10 link per volta e ho tentato di metterli insieme in questo modo: 
 <?php
 $x_pag = 1;// Righe per pagina
 $pageNum = 1; // Pagina iniziale di default
 // Recupero il numero di pagina corrente.
 if(isset($_GET['page']))
 {
 $pageNum = $_GET['page'];
 }
 // Uso mysql_num_rows per contare le righe presenti
 // all'interno della tabella
 $all_rows = mysql_num_rows(mysql_query("SELECT * FROM venezia z, immagini i WHERE z.img_id = i.id LIMIT 1, 58"));
 // Tramite una semplice operazione matematica definisco
 // il numero totale di pagine
 $all_pages = ceil($all_rows / $x_pag);
 $self = $_SERVER['PHP_SELF'];
 $nav = '';
 for($page = 1; $page <= $all_pages; $page++)
 {
 if ($page == $pageNum)
 {
 $nav .= " $page ";
 }
 else
 {
 $nav .= " <a href="$self?page=$page">$page</a> ";
 }
 }// Calcolo da quale record iniziare 
 $first = ($pageNum - 1) * $x_pag;
 function pagination_3($all_pages,$pageNum,$webpage){
 //imposto la mia $webpage come parametro formale$pagination = ""; 
 if($all_pages!=1){
 if($pageNum>'1')
 {
 $pagination.="<a href=".$webpage."?page=1><small>prima</small></a>
 <a href=".$webpage."?page=".($page-1).">Prev</a>";
 }//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($all_pages<=$maximum_links) { //Il numero massimo di links che occorreranno saranno pari al numero totale di pagine + 1 $maximum_links = $all_pages+1; } //Se ne sono necessarie di piu, allora: else{ //$maximum_links +1 $maximum_links=$maximum_links+1; if($pageNum>=$maximum_links){ $maximum_links=$pageNum+1; } } for ($i=1;$i<$maximum_links;$i++) { if($i==$pageNum){ $pagination.="<a>".$i."</a>"; } else{ $pagination.= "<a href=".$webpage."?page=".$i.">".$i."</a>"; } } //next e ultima pagina; if(($page >="1")&&($pageNum!=$all_pages)){ $pagination.= "<a href=".$webpage."?page=".($pageNum+1).">Next</a> <a href=".$webpage."?page=".$all_pages."><small>ultima</small></a>"; } } else{ $pagination.=""; } return($pagination);} 
 //il risultato di questa paginazione è il seguente :
 //prima PREV 1 2 3 4 5 6 7 8 9 10 Next ultima
 echo $pagination . "<br /><br />";
 ?>ma nella riga di stampa echo $pagination . "<br /><br />"; mi dà questo errore 
 undefined variable: pagination in......
 perchè non funziona????
 grazie