Salve a tutti. Ho un bel problema.
Ho la seguente funzione.
Codice PHP:
Function VisualizzaTabellaFooter($elencotabelle,$criterioricerca,$testodescrizione){
INCLUDE(
'config.php'); 
###################################
// Funzione che visualizza i dati contenuti nella tabella listini. Vengono visualizzati in
   //una tabella che ha righe di colore alternato, intestazione cliccabile per cambiare
     //  l'ordinamento dei dati, scrollabile.
#############################################################
$connessione mysql_connect($db_host$db_user,$db_password) or die("Connessione fallita !"); 
@
mysql_select_db($db_name) or die("Selezione Database fallita !"); 

 
$testodescrizione=$_GET['testodescrizione'];
$elencotabelle=$_GET['elencotabelle'];

if (isset(
$_GET['field'])) { 
$campo $_GET['field'] == "descrizione" "descrizione" "Codice_articolo" 
} else { 
$campo "Costruttore"

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


if ((
$elencotabelle=="listini" and  $testodescrizione="")or ($elencotabelle=="costruttori" or $elencotabelle=="categorie")){
         
 
//stampo la tabella listini per intero

$sql="SELECT * from listini order by {$campo} {$verso}  "

$risultato_query=mysql_query($sql,$connessione)or die ("query 1 fallita"); 
                            
                            }

else{  

    
// stampo la tabella listini con il filtro WHERE Codice_articolo
    
    
$word=trim($_GET['testodescrizione']);

    
$sql1="SELECT * from listini where Codice_articolo like \"%$word%\"   order by {$campo} {$verso} 
 "
;
    
$risultato_query=mysql_query($sql1,$connessione)or ("Query sbagliata " .mysql_error()); 
     
// controlla il risultato della query attraverso la funzione mysql_query 
}

$res_count=mysql_num_rows($risultato_query); 
// numero totale di records 

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

  echo 
"<table width=\"747\" border=\"1\">
  <tr> 
    <td width=\"118\"class=\"intestazione\"width=\"223\"><a href='index.php?field=Costruttore&sort=
{$verso}'>Costruttore
    </a></td>

    <td width=\"164\" class=\"intestazione\"width=\"223\">[url='index.php?field=Codice_articolo&sort=
{$verso}']Codice_articolo[/url]</td>

    <td width=\"149\" class=\"intestazione\"width=\"223\">[url='index.php?field=descrizione&sort=
{$verso}']descrizione[/url]</td>

    <td width=\"141\"class=\"intestazione\"width=\"223\"><a href='index.php?field=listino&sort=
{$verso}'>listino</td>

    <td width=\"141\"class=\"intestazione\"width=\"223\"><a href='index.php?field=Codice Barcode&sort=
{$verso}'>Codice Barcode</td>

  </tr>
</table>"
;
     echo
" <div id=\"Layer1\"  style=\" width:747px; height:115px; overflow: auto;\"> "
 
$class ''

 while(
$riga=mysql_fetch_array($risultato_query)){ 
     
              
$Costruttore=$riga["Costruttore"]; 
             
$Codice_articolo=$riga["Codice_articolo"]; 
             
$descrizione=$riga["descrizione"]; 
              
$listino=$riga["listino"];
              
$barcode=$riga["codice_barcode"];
             
             
$class $class == 'colore1' 'colore2' 'colore1'
         
 echo 
"<table width=\"747\" border=\"1\">";
             echo
" <tr class= \"$class\"> "

    echo
" <td  width=\"118\" class= \"$class\" >$Costruttore </td>";
    echo
"<td    width=\"164\" >$Codice_articolo</td>"
     echo
"<td    width=\"149\" >$descrizione</td>"
     echo
"<td    width=\"141\" >$listino</td>"
     echo
"<td    width=\"141\" >$barcode</td>"
    echo
"</tr>"
         }
         echo
"</table>";
       echo
"</div>";
 echo
"</td>";
  echo
" </tr>";
 echo
"</body>";
 echo
"</html>";

La funzione fa il suo dovere quando si è nel primo if . Ovvero Stampa tutta la tabella 'listini' e cliccando sulle colonne fa l'ordinamento DI TUTTA LA TABELLA, in base a quel campo.

Quando invece entro nell' else , fa il filtro grazie alla condizione di WHERE, ma CLICCANDO SULLE COLONNE MI RESTITUISCE TUTTI I RECORD DELLA TABELLA, INDISTINTAMENTE, SENZA FILTRO.

Come posso sistemarla?
Grazie!