Ciao e grazie a tutti per i consigli!
Io ho sempre utilizzato uno scrip prelevato da una guida su freephp. Lo script è questo:
Codice PHP:
<?php
// Parte relativa alla connessione al DB
include("config.php");
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
if (!isset($start) OR $start<0)
// Imposto il numero di query da estrarre
$start=0;
$step =10;
// Query per l'estrazione dei dati da Db
$query = "SELECT * From tabella_sql LIMIT $start,$step";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{
echo"$row[risultato]";
}
// coteggio dei record presenti nella tabella_sql
$query= "SELECT count(*) AS tot FROM tabella_sql ";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$pages = intval(($row[tot]-1) / $step)+1;
// Costruisco il link: Indietro
if ($start>0)
{
$start_back = $start - $step;
echo "[url="show.php?start=$start_back"]Indietro[/url]";
}
// Costruisco il link: 1 -2 -3 -4.....
for ($i=0; $i<$pages AND $i<20; $i++)
{
$start_page = $i * $step;
echo "<a href=show.php?start=$start_page>" . ($i+1) . "</a> ";
}
// Costruisco il link: AVANTI
if ($start + $step <$row[tot])
{
$start_next = $start + $step;
echo "<a href=show.php?start=$start_next>Avanti</a>";
}
Questo script ha sempre funzionato, ma mi sono accorto che ha dei limiti....
Per quanto riguarda la porzione di codice relativa ai LINK AVANTI e INDIETRO, tutto funziona perfetta,mente, mentre qualche problema ho con la porzione di codice che costruisce i numeri delle pagine, ovvero: 1 - 2 - 3 - 4 - 5 - ....
Codice PHP:
// Costruisco il link: 1 -2 -3 -4.....
for ($i=0; $i<$pages AND $i<20; $i++)
{
$start_page = $i * $step;
echo "<a href=show.php?start=$start_page>" . ($i+1) . "</a> ";
}
Essensialmente ci sono due problemi (almeno quelli che ho notato io):
1) Se la tabella_sql contiene un numero elevato di record, loscript stampa un numero elevato di pagine, ovvero tutte quelle che ci sono!
Più precisamente a me piacerebbe che esso si fermasse ad un max di 10, cioè così:
codice:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10
naturalmente mi piacerebbe che se si va alla pagina 3, ad esempio, si incrementasse:
codice:
3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13
2) ho notato che lo script si ferma ad un max di 20 pagine e se ci sono più pagine non vengono stampate i numeri.
Potete darmi una mano a sistemare questo di script? preferire utilizzare questo perchè bene o male (viste le mie poche conoscenze di php) lo conosco già e so come utilizzarlo....., ma mi piacerebbe effettuare le modifiche sopra descritte.
Qualche suggerimento per piacere?