Ciao ragazzi, alla fine ho cambiato script per l'invio e la paginazione dei dati nella stessa pagina.

Ora lo script che ho fatto funziona a metà... ho il problema della paginazione che appare prima di iniziare la ricerca e non mi tira fuori "La ricerca non ha prodotto nessun risultato" se non sono presenti dati.

Probabilmente per tutto sbaglio la posizione della seconda parte dello scrip

Codice PHP:
<?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 
'[url="' crea_url($url_base$numero_pagina) . '"]' $numero_pagina '[/url]';
    }
}

// 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) . '"]&laquo;[/url] ';
    }
  
    
// mostriamo sempre il link alla prima pagina
    
$link_paginazione .= crea_link($url_base$pagina_corrente1);
  
    
// 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_corrente2);
        } 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) . '"]&raquo;[/url]';
    }
  
    return 
$link_paginazione;
}

//--------------------------------------------------------------------
//                    SCRIPT PAGINAZIONE DATI 

$DB_host     'localhost';
$DB_user     'root';
$DB_password '';
$DB_name     'test2';

$righe_per_pagina 3;
$url_base "index.php";
$pagine_vicine 1;

// ----------------------------------------------------------------
//         C O N N E S S I O N E   A L   D A T A B A S E

$link mysql_connect($DB_host$DB_user$DB_password);
if (!
$link) {
    die (
'Non riesco a connettermi: ' mysql_error());
}

$db_selected mysql_select_db($DB_name$link);
if (!
$db_selected) {
    die (
"Errore nella selezione del database: " 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
$query "SELECT COUNT(*) FROM scheda";
$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;

session_start();

if(isset(
$_GET["regioni"])){
   
$_SESSION['regioni']=$_GET["regioni"];
}


$query "SELECT * FROM scheda WHERE regione = '{$_SESSION['regioni']}' LIMIT $prima_riga$righe_per_pagina";

$result mysql_query($query);
if (!
$result) {
    die(
"Errore nella query $query: " mysql_error());
}

$elenco_comuni = array();
while (
$row mysql_fetch_assoc($result)) {
    
$elenco_comuni[] = $row;
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Elenco Comuni Italiani</title>
</head>
<body>


<form action="index.php" method="GET">
    Regioni: <input type="text" id="regioni" name="regioni" />
    <input type="submit" id="cerca" name="cerca" value="Cerca"/>
</form>



<?php

if ($tot_pagine == 0
{
    echo 
"La ricerca non ha prodotto nessun risultato";
}
else
{
    foreach(
$elenco_comuni as $riga)        //while($r = mysql_fetch_array($data)) {
    
{
        echo  
$riga['struttura'];
    }

    
// creazione dei link di paginazione
        
$link_paginazione paginazione($tot_pagine$url_base$pagina_corrente$pagine_vicine); 
        
//this is the pagination link
        
echo "echo $link_paginazione";
        
}

?>


</body>
</html>