Grazie mille boots per la risposta. Si, scusami hai ragione. Ti mostro la pagina completa così cerchiamo di risolvere la situazione.
codice:
<?
// CODICE: Connessione al database
$pag = $_GET["pag"];
if (isset($pag) == false || is_numeric($pag) == false || $pag < 1)
{
$pag = 1;
}
$fine = 10;
$inizio = ($pag - 1) * $fine;
//Di seguito sono specificate le query
$select = 'SELECT DISTINCT id, text';
$from = ' FROM table';
$where = ' WHERE 1=1';
$order = ' ORDER BY id DESC';
$limit = " LIMIT " . $inizio . ", " . $fine;
//Qui assegno la condizione proveniente da un altro file: search.php
$search = $_POST['search'];
if ($search != '') {
$where .= " AND text LIKE '%$search%' ";
}
//Assegno ad una variabile il valore del risultato del search
$query = @mysql_query($select . $from . $where . $order . $limit);
if (!$query) {
exit ('
Error retrieving data from database!</p>'.'Error: ' . mysql_error() . '</p>');
}
//Forse è qui l'ERRORE?
$quanti = mysql_num_rows($query);
for($x=0; $x<$quanti; $x++) {
$row = mysql_fetch_row($query);
//CODICE: items da stampare a video
}
$query2 = mysql_query($select . $from . $where . $order);
$quanti2 = mysql_num_rows($query);
$intero = ceil($quanti2 / $fine);
?>
Pagina <?echo $pag;?> di <?echo $intero;?></p>
<?
for($x=1; $x<$intero+1; $x++)
{
if ($x == $pag)
{
?>
<?echo $x;?> |
<?
}
else
{
?>
<?echo $x;?> |
<?
} //Chiusura else
} //Chiusura for
?>
Il problema in questo caso specifico è il seguente: mi mostra il i risultati esatti, sia in termini di pagine che di items ma nel momento in cui vado a CAMBIARE PAGINA i risultati elencati sono quelli di TUTTO il database e le pagine sono piu che raddoppiate (per ovvi motivi).
Non chiedo di farmi da debugger, non mi permetterei mai. In prima cosa vorrei capire dove è che sbaglio, non riesco proprio a capirlo!