- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Script] Classe per l'impaginazione
-
[Script] Classe per l'impaginazione
Ciao a tutti!
Per esigenza su un mio script, ho dovuto creare una semplice classe per l'impaginazione, ed ho pensato che forse potrebbe esservi utile.
Ecco la classe:
class.pagination.php[php]<?php
//CLASSE DI IMPAGINAZIONE
class impaginazione{
public $menu;
public $num_per_page;
public $ceil;
public $from;
public $query;
public $rows;
function createlink($page,$num_per_page,$query,$rows,$url){
$this->page = $page;
$this->num_per_page = $num_per_page;
$this->query = $query;
$this->rows = $rows;
$this->url = $url;$this->ceil = ceil($this->rows/$this->num_per_page);
$this->from = (($this->page * $this->num_per_page) - $this->num_per_page);
$this->menu = "";if($this->page > 1)
{
$this->menu .= " <a href="".$this->url."&page=".($page-1)."">Indietro</a> ";
}for($i = 1; $i <= $this->ceil; $i++)
{
if(($this->page) == $i)
{
$this->menu .= $i;
}
else
{
$this->menu .= " <a href="".$this->url."&page=".$i."">$i</a> ";
}
}
if($this->page < $this->ceil)
{
$this->menu .= " <a href="".$this->url."&page=".($page+1)."">Avanti</a> ";
}
$this->query .= " LIMIT ".$this->from.",".$this->num_per_page."";//COMPLETA LA QUERY
}
}
?>[/php]Ecco l'utilizzo:[php]
<?php
////////////////////////////
#IMPAGINAZIONE#
###########################
require "class.pagination.php";
$page = (!isset($_GET['page'])) ? 1 : $_GET['page'];//controlli necessari
$page =($page == 0) ? 1 : $_GET['page'];//controlli necessari
#Qui eseguiamo la query che recupera i dati
#Ricordate che la query non deve contenere il carattere LIMIT
$query_init ="SELECT * FROM snf_topics WHERE snf_t_forumid = '" . $_GET['fs'] . "' ORDER BY snf_t_id DESC";//La nostra query(in questo caso la mia)
$action = mysql_query($query_init);//ESEGUE
$rows = mysql_num_rows($query_init);//Il numero di colonne, dato importantissimo
$num_per_page = 10;//quanti articoli vogliamo per ogni pagina$pag = new impaginazione();//creo nuova istanza
$link = "show.php?fs=".$_GET['fs'];//La pagina su cui lo script deve agire(es index.php?var1=1 diventerà index.php?var1=1&page=1)$pag->createlink($page,$num_per_page,$query_init,$rows,$link);
$query = mysql_query($pag->query);
$menu = $pag->menu;
while($row = mysql_fetch_array($query)){
....
}
echo $menu;
//Formato: Indietro 1 2 3 4 Avanti?>
[/php]Spero di essere stato utile
-
Appena posso la provo!
-
Ciao... Lo script non funziona!! Mi dà errore nella creazione della funzione... Non esiste qualche script simile a questo ma più semplice?