Salve scusate se posto un argomento che già è presente sul forum ma dalle risposte degli altri post non ho trovato al soluzione.
da un form di ricerca devo visualizzare i risultati e suddividerli per pagine.
(Premetto che la paginazione funziona su un altro script che mi visualizza dei record del database, ma non funziona con il comando search.)
Praticamente effettua la ricerca la stampa a video con il LIMIT giuto, però la paginazione ha i seguenti errori:
il numero delle pagine non corrisponde con il risultato della ricerca, praticamente legge tutti i record del database a prescindere dei risultati visualizzati( spero di essermi spiegato).
facendo click sulle pagine visualizzate mi apre le pagine ma con risultato 0 come se effettuasse un'altra ricerca senza trovare nessun risultato.
Posto il codice:
pagina search.php:
<?php
session_start();
$_SESSION['chiave'];
$chiave=$_POST['chiave'];
$testo = explode (",", $chiave);
$query = "";
reset ($testo);
while (list(,$parola) = each ($testo))
{ $parola = trim($parola);
if ($parola != ""){
$count = mysql_query("SELECT COUNT(*) FROM immagini WHERE ( keywords LIKE '%$parola%' OR nomeimmagine LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR 0) AND conta='1'");
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[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['parola']) ? 1 : (int)$_GET['parola'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
$query .= "SELECT * FROM immagini WHERE (keywords LIKE '%$parola%' OR nomeimmagine LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR 0) AND conta='1' LIMIT $primo, $per_page ";
}
if(empty($_POST['chiave'] )){
echo "<div id='cont_result' style='height:400px'><div id='result' >Nessun risultato per i tuoi termini di ricerca</div></div>
";
}else {
$result = mysql_query($query, $connessione);
while ($row = mysql_fetch_array($result)){
echo "<div id='cont_result'><img src=images/".$row['urlimmagine']."><div id='result'><h4>". $row['nomeimmagine']."</h4> <h6>|". $row['data']."|".$row['keywords']."|".$row['urlsite']."</h6>
".$row['descrizione']."</p></div></div>
";
}
}
}
?>
paginazione_result.php
<?php
$count = mysql_query("SELECT COUNT(*) FROM immagini WHERE (keywords LIKE '%$parola%' OR nomeimmagine LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR 0) AND conta='1'");
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[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['chiave']) ? 1 : (int)$_GET['chiave'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
$chiave=$_POST['chiave'];
if($current_page == 1) { // se siamo nella prima pagina
$precedente = "<< prev ";
} else { // altrimenti
$previous_page = ($current_page - 1);
$precedente = "<a href=\"?chiave=$chiave\" title=\"Vai alla pagina precedente\"><< prev</a>";
}
if($current_page == $tot_pages) { // se siamo nell'ultima pagina
$successiva = "next >>";
} else { // altrimenti
$next_page = ($current_page + 1);
$successiva = "<a href=\"?chiave=$chiave\" title=\"Vai alla pagina successiva\">next >></a>";
}
for($i = 1; $i <= $tot_pages; $i++) {
if($i == $current_page) {
$paginazione .= $i . " ";
} else {
$paginazione .= "<a href=\"?parola=$i\" title=\"Vai alla pagina $i\">$i</a> ";
}
}
echo '<div id="num"><span>'.$precedente.'</span>'.$paginazione.'<span>'.$successiva.'</span></div>';
?>
Spero che qualcuno possa aiutarmi grazie mille in anticipo.