Sto facendo uno stage di informatica dove ho svilippato un db bibliografico.
Ora devo creare un sito che permetta a tutti gli utenti di poter interrogare il db.
Devo offrire la possibilità di effettuare diverse ricerce e per ognuna devo creare una paginazione che mi mostri 50 redord x pagina.
Per far questo ho preso spunto dal vostro corso alla pagina
http://php.html.it/articoli/leggi/85...zione-di-dati/
Ho usato tale paginazione x la visualizzazione di tutti i dati del db e non ci sono stati problemi.
Quando xò ho effettuato una seconda ricerca x autore nella prima pagina mi visualizza i primi 50 redors esatti, ma quando passo alla seconda pagina si collega alla paginazione 2 della visualizzazione totale.
Se utilizzo la paginazione per più ricerche differenti, prende in automatico le paginazioni della prima ricerca che ho creato.
Come posso fare x le ricerche successive?
perchè queste non vadano in conflitto?
spero di essermi spiegata...
Questo è parte del codice che utilizzo:
-------------------------------------------------------------------------------------
$parola = $_POST['libera'];
$count = mysql_query("SELECT COUNT(idBiblio) FROM biblio, ufficio
WHERE ufficio.idUfficio = codUfficio AND
(titolo LIKE '%$parola%' OR autore LIKE '%$parola%' OR in_ed_tip LIKE '%$parola%'
OR note_risorsa LIKE '%$parola%' OR note_ubicazione LIKE '%$parola%'
OR descrizione LIKE '%$parola%' OR fiu_to_la LIKE '%$parola%') order by anno");
$res_count = mysql_fetch_row($count);
$tot_records = $res_count[0]; // numero totale di records
$per_pag = 50; // risultati per pag
$tot_pages = ceil($tot_records / $per_pag); // numero totale di pagine
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page']; // pagina corrente
$primo = ($current_page - 1) * $per_pag; // primo parametro di LIMIT
$i = 0;
$cod = 01;
// esecuzione seconda query con LIMIT
$query = mysql_query("SELECT idBiblio, autore, anno, titolo, argomento, ufficio.nomeUff as
ufficio FROM biblio, ufficio
WHERE ufficio.idUfficio = codUfficio AND
(titolo LIKE '%$parola%' OR autore LIKE '%$parola%' OR in_ed_tip LIKE '%$parola%'
OR note_risorsa LIKE '%$parola%' OR note_ubicazione LIKE '%$parola%'
OR descrizione LIKE '%$parola%' OR fiu_to_la LIKE '%$parola%') order by anno
LIMIT $primo, $per_pag");
?>
<div id="wrapper">
<div id="content">
<div class="postcerca">
<table class="intestazione" align="center">
<tr>
<td align="center">
<h1>Risorse trovate: <?php echo "$tot_records"; ?></h1>
</td>
</tr>
</table>
<table class="elenco_risultati" align="center">
<tr class="titoli" align="center">
<td>Codice</td>
<td>Autore</td>
<td>Anno</td>
<td>Titolo</td>
<td>Argomento</td>
<td>Ufficio</td>
<td></td>
</tr>
//stampa i dati del db
<?php
while($row = mysql_fetch_array($query)) {
$i++;
$idBiblio = stripslashes($row['idBiblio']);
$autore = stripslashes($row['autore']);
$anno = stripslashes($row['anno']);
$titolo = stripslashes($row['titolo']);
$argomento = stripslashes($row['argomento']);
$ufficio = stripslashes($row['ufficio']);
if(($i % 2) != 0) {
$colore = '#F0F8FF';
} else $colore = '#EFEFEF';
?>
<tr bgcolor="<?php print($colore); ?>">
<td width="5%" align="center"><?php echo $idBiblio; ?></td>
<td width="19%"><?php echo $autore; ?></td>
<td width="5%" align="center"><?php echo $anno; ?></td>
<td width="44%"><?php echo $titolo; ?></td>
<td width="12%"><?php echo $argomento; ?></td>
<td width="12%"><?php echo $ufficio; ?></td>
<td width="3%">[img]images/vedi.png[/img]</td>
</tr>
<?php }
include("paginazione_2.php");
echo " <tr> <td colspan=\"7\" height=\"20\" valign=\"bottom\" align=\"center\">
$paginazione</td></tr>";
?>
</table>
-----------------------------------------------------------------------------------------
Mentre questa è la paginazione che utilizzo:
<?php
if($current_page == 1) { // se siamo nella prima pagina
$precedente = "<img src=\"images/stop.ico\" title=\"Inizio\" border= 0>";
} else { // altrimenti
$previous_page = ($current_page - 1);
$precedente = "<a href=\"?page=$previous_page&$cod=01\" title=\"Pagina precedente\">
<img src=\"images/left.ico\" border= 0></a>";
}
if($current_page == $tot_pages) { // se siamo nell'ultima pagina
$successiva = "<img src=\"images/stop.ico\" title=\"Fine\" border= 0>";
} else { // altrimenti
$next_page = ($current_page + 1);
$successiva = "<a href=\"?page=$next_page&$cod=01\" title=\"Pagina successiva\">
<img src=\"images/right.ico\" border= 0></a>";
}
$paginazione = "$precedente $successiva";
?>