Buongiorno a tutti
nel sito che sto creando c'è una pagina di ricerca che funziona perfettamente tranne che per la paginazione nel senso che nella prima pagina tutto bene ma se clikko sulla seconda mi da errore in pratica non passa i valori posto il codice che ho usato:
Codice PHP:
include 'impaginazione.php';
$Operazione = $_GET['TipoOper']; $
search = $_GET['search'];
$righe_per_pagina = 20;
$url_base = "search.php";
$pagine_vicine = 10;
$conn= mysql_connect("localhost", "root", "usbw");
if (!$conn) {
die("Connessione a Mysql non riuscita " . mysql_error()); }
$db= mysql_select_db("tributi", $conn); if (!$db) {
die("Connessione al Database non riuscita " . mysql_error()); }
// C A L C O L O D E L N U M E R O D I P A G I N E
// ricavo il numero totale di record
if($Operazione=='Nominativo'){ $query = "SELECT COUNT(*) FROM versamentidaposte WHERE Nominativo LIKE '%$search%'"; }
else if($Operazione=='DataPagamento'){
$query = "SELECT COUNT(*)
FROM versamentidaposte
WHERE DataPagamento LIKE '%$search%'"; }
else if($Operazione=='Tassa'){
$query = "SELECT COUNT(*) FROM versamentidaposte WHERE Tassa LIKE '%$search%'"; } else if($Operazione=='CodiceFiscale'){
$query = "SELECT COUNT(*) FROM versamentidaposte WHERE CodFiscale LIKE '%$search%'"; }
$result = mysql_query($query);
// record complessivi
$tot_righe = mysql_result($result,0);
// totale pagine
$tot_pagine = ceil($tot_righe / $righe_per_pagina);
// P A G I N A C O R R E N T E
$pagina_corrente = isset($_GET['pag']) ? (int)$_GET['pag'] : 1;
// se la pagina corrente è minore di 1 if($pagina_corrente < 1) {
header('location: ' . $url_base); exit(); }
// se la pagina corrente è maggiore dell'ultima pagina
if($pagina_corrente > $tot_pagine) {
header('location: ' . crea_url($url_base, $tot_pagine)); exit(); }
// E S T R A Z I O N E D E I R E C O R D
// calcolo la prima riga da estrarre con la query
$prima_riga = ($pagina_corrente - 1) * $righe_per_pagina;
echo "<font face=Bangle size=4 color:#000000;>Il testo cercato è: </font><span face=Perpetua size=6 color:#000000;'>[b]$search[/b]</span>."; if($Operazione=='Nominativo'){
$query = "SELECT ID, Nominativo, CodFiscale, Tassa, Date(DataPagamento) as DataPagamento FROM versamentidaposte
WHERE Nominativo LIKE '%$search%'ORDER By Nominativo,ID LIMIT $prima_riga, $righe_per_pagina"; }
//qui c'è il while e l'echo.....
// creazione dei link di paginazione
$link_paginazione = paginazione($tot_pagine, $url_base, $pagina_corrente, $pagine_vicine);
echo "$link_paginazione"?>
credo che dovrei passare i dati immessi nel campo ricerca in qualche modo ma nono so come
qualcuno mi può aiutare? grazie 
ah ho scordato di mettwere il codice della paginazione:
Codice PHP:
function crea_url($url_base, $pagina) {
if(strpos($url_base,'?') === false) {
return $url_base . '?pag=' . $pagina; }
else {
return $url_base . '&amp;pag=' . $pagina; } }
function crea_link($url_base, $pagina_corrente, $numero_pagina) {
if($pagina_corrente == $numero_pagina) {
return "[$numero_pagina]"; }
else {
return '<a href="' . crea_url($url_base, $numero_pagina) . '">' .
$numero_pagina . '</a>'; } }
// funzione che crea i link alle pagine dei risultati
function paginazione($tot_pagine, $url_base, $pagina_corrente, $pagine_vicine) { $link_paginazione = "Pagine: ";
// link alla pagina precedente
if($pagina_corrente != 1) {
$link_paginazione .= '[url="' . crea_url($url_base, $pagina_corrente - 1) . '"]«[/url] '; }
// mostriamo sempre il link alla prima pagina
$link_paginazione .= crea_link($url_base, $pagina_corrente, 1);
// se il prossimo link non è alla seconda pagina aggiungo dei puntini ...
// oppure la sola pagina mancante
if($pagina_corrente - $pagine_vicine > 2) {
if($pagina_corrente - $pagine_vicine == 3) {
$link_paginazione .= " " . crea_link($url_base, $pagina_corrente, 2); }
else {
$link_paginazione .= " ... "; } }
// creo i link alla pagina corrente ed a quelle ad essa vicine
for($i = $pagina_corrente - $pagine_vicine;
$i <= $pagina_corrente + $pagine_vicine; $i++) {
// se tra quelle vicine c'è la prima pagina (già riportata)
if($i < 2) continue;
// se tra quelle vicine c'è l'ultima pagina (che mostrerò con le prossime istruzioni)
if($i > $tot_pagine - 1) continue;
$link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $i); }
// se il precedente link non era alla penultima pagina aggiungo dei puntini ...
// oppure la sola pagina mancante
if($pagina_corrente + $pagine_vicine < $tot_pagine - 1) {
if($pagina_corrente + $pagine_vicine == $tot_pagine - 2) {
$link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $tot_pagine - 1) . " "; } else {
$link_paginazione .= " ... "; } }
// mostriamo il link all'ultima pagina se questa non coincide con la prima
if($tot_pagine != 1) {
$link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $tot_pagine); }
// link alla pagina successiva
if($pagina_corrente != $tot_pagine) {
$link_paginazione .= ' [url="' . crea_url($url_base, $pagina_corrente + 1) . '"]»[/url]'; }
return $link_paginazione; }