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($risultato, MYSQLI_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....