Un'altro problema.
Sono riuscito nel mio intento, mi passo le variabili tramite session, e con il codice di TheMastion riesco a ottenere ciò che voglio, c'è solo un problema in pratica cliccando sull'ordinamento mi raddoppia i risultati, in pratica è come se mi facesse due tabelle. Vi posto il codice

Codice PHP:
<?php 
// inizializzo le variabili e prendo i valori dal post
$prog $_SESSION['prog'];
$array_unico $_SESSION['unico'];
$lav $_SESSION['lav'];
$data $_SESSION['data'];


//inizializzo le variabili che servono per controllare l'ordinamento

if (isset($_GET['field']))
{
    
$campo $_GET['field'] == "requisiti.IMPORTO_GLOBALE" "requisiti.IMPORTO_GLOBALE":"requisiti.IC";
}
else
{
    
$campo "requisiti.IC";
}
if (isset(
$_GET['sort']))
{
    
$verso $_GET['sort'] == "desc" "DESC" "ASC";
}
else
{
    
$verso "ASC";





if (
$data == '')
 {
$data "01/01/1900";}
 
function 
date_DB($date,$separatore)
  {
  @list(
$day,$month,$year)=explode($separatore,$date);
  
$res_arr=array();
  
$res_arr[]=$year;
  
$res_arr[]=$month;
  
$res_arr[]=$day;
  
$result=implode("-",$res_arr);
  return 
$result
  };
// richiamo la funaione date_DB per trasformare la data nel formato corretto
$mydata=$data;
$DATA=date_DB($mydata,'/'); /* restituisce 2008/11/24 */




 /* Connessione e selezione del database */
$connessione mysqli_connect("localhost""root""G91031""database")
or die(
"Connessione non riuscita");

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

/* Preparo la formattazione della tabella e i titoli */
echo "<table border =\"1\" cellspacing=\"0\" width=\"100%\">
<TR>
<TH>NOME</TH>
<TH><a href='Requisitiord.php?field=requisiti.IMPORTO_GLOBALE&sort=
{$verso}'>IMPORTO TOTALE</a</TH>
<TH>IA</TH>
<TH>IB</TH>
<TH><a href='Requisitiord.php?field=requisiti.IC&sort=
{$verso}'>IC</a</TH>
<TH>ID</TH
<TH>IE</TH>
<TH>IF</TH>
<TH>IG</TH>
<TH>IIIA</TH>
<TH>IIIB</TH>
<TH>IIIC</TH>
<TH>VIA</TH>
<TH>VIB</TH>
<TH>VIII</TH>
</TR>"
;

// verifico tutte le condizioni sulle fasi progettuali e creo le variabili e gli array per le query 

// queste sono le variabili finali su cui faccio la query nella tabella lavori e nel campo prestazioni_normativa

if (isset ($prog))
{
if (
$lav == '0')
{ foreach (
$prog as $fase)
    {
        
$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 '$fase' ORDER BY {$campo} {$verso}";
        
        
$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></tr>";
                                    
                                    break;
                                }
                        }
                    
                    
// ovviamente se non stampo niente procedo con la ricerca nell'altro gruppo di richieste
                    
}
            
            } 
    }
}
Qualcuno ha dei suggerimenti....