Prendo spunto per iniziare questa nuova discussione da una precedente dove TheMastion aveva aiutato un'altro utente a realizzare una cosa così

http://javascript.html.it/tutorial/e...25/esempio.htm

Ossia i titoli delle colonne che permettono l'ordinamento ascendende o discendente.

Prima di inserire il codice di TheMastion dentro il mio (super incasinatissimo codice) volevo un vostro aiuto e supporto.

Per iniziare vi posto il codice di TheMastion

Codice PHP:
<?php

INCLUDE('connessione.php');

if (isset(
$_GET['field'])) 
{
    
$campo $_GET['field'] == "Descrizione" "Descrizione" "Codice_Materiale";

else 
{
    
$campo "Codice_Materiale";
}
if (isset(
$_GET['sort'])) 
{
    
$verso $_GET['sort'] == "desc" "DESC" "ASC";

else 
{
    
$verso "ASC";
}

$sql="SELECT * from materiale order by {$campo} {$verso} ";
// seleziona tutti i record della tabella

$risultato_query=mysql_query($sql,$connessione);
// controlla il risultato della query attraverso la funzione mysql_query

$num_righe=mysql_num_rows($risultato_query);
// restituisce il numero di record ottenuto dalla selezione

$verso = ($verso == "ASC") ? "desc" "asc";

echo
"<table width=\"584\" border=\"0\"cellspacing=\"0\" cellpadding=\"0\">";
echo
"<tr> ";
echo
"<td width=\"220\" bgcolor=\"#f5f5f5\">[b][url='tuapagina.php?field=Codice_Materiale&sort={$verso}']CODICE MATERIALE[/url][/b]</td>";
echo
" <td  width=\"352\" bgcolor=\"#f5f5f5\">[b][url='tuapagina.php?field=Descrizione&sort={$verso}']DESCRIZIONE[/url][/b]</td>";
echo
" </tr>";
echo
" <tr>";
echo
"  <td colspan=\"2\"><div id=\"Layer1\" style=\" height:7em;  overflow: auto;\">";
echo
" <table width=\"584\" id=\"table-1\">";

$i=0;
while(
$riga=mysql_fetch_array($risultato_query))
{
    
$CodiceMateriale=$riga["Codice_Materiale"];
    
$Descrizione=$riga["Descrizione"];
    if(
is_int($i/2))
    {
        
$color "#c0c0c0";
    }
    else
    {
        
$color"#ffffff";
    }
    echo
" <tr> ";
    echo
" <td width=\"230\" style=\"background:$color\">$CodiceMateriale </td>";
    echo
"<td width=\"342\" style=\"background:$color\">$Descrizione</td>";
    echo
"</tr>";
    
$i++;
}
echo
"</table>";
echo
"</div></td>";
echo
"</tr>";
echo
"</table>";

?>
Il codice mi è sostanzialmente chiaro (forse è un parolone), ossia io mi passo tramite get le variabile per l'order by nella query, e in pratica (e qui viene il problema) io mi ricarico la mia pagina di ricerca, ossia se ho capito bene la pagina di ricerca è unica (nel caso tuapagina.php)

Ora dove è il mio problema, la query che faccio io è un poco più
complicata e riceve le informazioni su cui ricercare da POST attraverso un form. Per essere più chiaro io ho la pagina di ricerca ricerca.php dove ho solamente il form, che (tramite campi e checkbox) passa tramite POST i valori delle variabili. Nella pagina ricerca1.php il codice preleva le variabili (si fà i suoi controlli) e poi va a fare una query simile a questa

Codice PHP:
if (isset($array_prog1)) 
{
if (
$lav == '0')
    {
        
$query  "SELECT lavori.NOME, requisiti.IMPORTO_GLOBALE, requisiti.IA, requisiti.IB, requisiti.IC, requisiti.ID, requisiti.IE, requisiti.IF, requisiti.IG,     requisiti.IIIA, requisiti.IIIB, requisiti.IIIC, requisiti.VIA, requisiti.VIB, requisiti.VIII FROM lavori INNER JOIN requisiti ON lavori.ID = requisiti.ID_REQUISITI LEFT JOIN date ON lavori.ID = date.ID_DATE WHERE lavori.PRESTAZIONI_NORMATIVA LIKE '$cprog1' OR '$cprog2' OR '$cprog3' OR '$cprog4' OR '$cprog5' OR '$cprog6'";

        
$risultato mysqli_query($connessione,$query) or die("Query fallita");
        while (
$linea mysqli_fetch_array($risultatoMYSQLI_ASSOC)) 
        {                
            
// adesso controllo le date lavoro per lavoro che mi viene passato dal ciclo while
            
foreach ($array_unico as $array)
                {
                    
// controllo che non debba fare solo la sicurezza
                    
if (isset ($array))
                    { 
                        foreach (
$array as $faselavoro)
                            {    
                                if (isset (
$faselavoro))
                                    {
                                        
$nomignolo $linea['NOME'];
                                        
$fase 'date.FINE_';
                                        
$fase .= $faselavoro;
                                        
$dom"SELECT $fase FROM date LEFT JOIN lavori ON date.ID_DATE = lavori.ID WHERE lavori.NOME = '$nomignolo'";
                                        
$ris mysqli_query($connessione,$dom) or die("Query fallita2");
                                        
$dataverifica mysqli_fetch_row($ris);
                                        
// verifico che la data del progetto sia posteriore a quella del bando
                                        
if ($dataverifica [0] < $DATA)
                                            {                                
                                                
$errore '1';
                                                
// se la condizione non Ã¨ soddisfatta interrompo il ciclo e passo al successivo gruppo di fasi lavoro
                                                
break;
                                            }
                                            else
                                            {                                
                                                
$errore '0';
                                                
// se la condizione Ã¨ soddisfatta continuo il ciclo
                                            
}
                                    }
                            }
                    
                        
// se invece la condizione Ã¨ soddisfatta mi stampo il risultato e esco dal ciclo perchè almeno una delle richieste Ã¨ stata soddisfatta
                        
                        
if ($errore == '0')
                            {    
                                
extract ($linea);
                                echo  
"<td>$NOME</td>";
                                echo  
"<td>$IMPORTO_GLOBALE</td>";
                                echo  
"<td>$IA</td>";
                                echo  
"<td>$IB</td>";
                                echo  
"<td>$IC</td>";
                                echo  
"<td>$ID</td>";
                                echo  
"<td>$IE</td>";
                                echo  
"<td>$IF</td>";
                                echo  
"<td>$IG</td>";
                                echo  
"<td>$IIIA</td>";
                                echo  
"<td>$IIIB</td>";
                                echo  
"<td>$IIIC</td>";
                                echo  
"<td>$VIA</td>";
                                echo  
"<td>$VIB</td>";
                                echo  
"<td>$VIII</td>";
                                echo 
"<td><center><input name=\"nome[]\" type=\"checkbox\" value=\"$NOME\" /></td></center</tr>";
                                
                                break;
                            }
                    }
                    
                    
// ovviamente se non stampo niente procedo con la ricerca nell'altro gruppo di richieste
                
}
            
        } 
    } 
Ora se io chiedo di ricaricarmi la stessa pagina in ordine ascendente su una colonna lui (PHP per gli amici) non troverà più i valori delle variabili del post vero? Se è come penso io (e non sono sicuro) come potrei fare a fargli passare le variabili per la ricerca. Io ci ho pensato e l'unica soluzione che mi viene in mente è di non far ricaricare la pagina ricerca1.php ma di indirizzare il tutto a una nuova pagina ricerca2.php dove io le variabili per la ricerca le recupero attraverso delle sessioni tipo

Codice PHP:
if (isset ($prog))
    {
$_SESSION['prog']= $array_passaggio;}
    if (isset (
$array_unico))
    {
$_SESSION['unico']= $array_unico;}
    if (isset (
$lav))
    {
$_SESSION['lav']= $lav;}
    if (isset (
$data))
    {
$_SESSION['data']= $data;} 
Come vi sembra come metodo, e le variabili via GET come si passano dalla pagina di invio?