Salve, ho un sito in linea che ha dei problemi con la paginazione dei risultati di una ricerca. La cosa strana è che invece in locale va tutto bene.
Comunque ecco cosa succede: imposto la chiave di ricerca, mi si visualizza correttamente la pagina, poi clicco in basso per spostarmi nella pagina successiva, anche qui tutto bene, ma quando torno alla prima non vengono visualizzati i dati che c'erano ma un solo record. Ora mi chiedo perché succede questa cosa e perché in locale no, vi posto il codice della paginazione:
codice:
<?
include("config.php");
include("errore.php");
require("connessione.php");
session_start();
if ($_SESSION['nome'] == "")
{
$nome_ric = $_POST['nome'];
}
else
{
$nome_ric = $_SESSION['nome'];
}
if ($_SESSION['titolo'] == "")
{
$titolo_ric = $_POST['titolo'];
}
else
{
$titolo_ric = $_SESSION['titolo'];
}
if ($_SESSION['genere'] == "")
{
$genere_ric = $_POST['genere'];
}
else
{
$genere_ric = $_SESSION['genere'];
}
if ($nome_ric == "")
{
$nome_ric = "%";
}
if ($titolo_ric == "")
{
$titolo_ric = "%";
}
if ($genere_ric == "")
{
$genere_ric = "%";
}
$query = "select count(*) from scritti where genere like '$genere_ric' and nome like '$nome_ric'
and titolo like '$titolo_ric'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
//tot record
$tot_records = $row[0];
// risultati per pagina(secondo parametro di LIMIT)
$per_page = 10;
// 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;
//salva criteri in sessione
$_SESSION['nome'] = $nome_ric;
$_SESSION['titolo']= $titolo_ric;
$_SESSION['genere'] = $genere_ric;
$query = "select * from scritti where genere like '$genere_ric' and nome like '$nome_ric'
and titolo like '$titolo_ric' LIMIT $primo, $per_page";
$result = mysql_query($query, $db);
if (mysql_num_rows($result) == 0)
{
?>
<tr>
<td>
<? echo "non ci sono testi che soddisfano i parametri";?></div>
</td>
</tr>
<?
}
else
{
$pos_top = 280;
while ($row = mysql_fetch_array($result))
{
$nome = $row['nome'];
$titolo = $row['titolo'];
$data = $row['data'];
$genere = $row['genere'];
$title2 = urlencode($row['titolo']);
?>
<tr>
<td >
<? echo ""?><? echo $titolo . " (" . $genere . ")"; ?>
<div class="autore"> di <? echo $nome . " ," . $data;
?>
</div>
</td>
</tr>
<?
}
include("paginazione.php");
}
?>
</table>
<div style="font-size:15px; font-weight:bold">
<?echo $paginazione;
?>
</div>
</div>
A me sembra tutto corretto, ma come faccio adesso a vedere perché non funziona?
nicola