Allora ho risolto facendo un controllo sul record se sono all'ultimoo non mettere UNION... giustamente... era una scemata.... ma chissa a che stavo a pensare....

ho fatto così...

codice:
$stringa= "show table status LIKE '%tbanno%'" ;
$tabelle=mysql_query("$stringa") or die("Impossibile eseguire la query $ciao
Errore:".mysql_error());

$num = mysql_num_rows($tabelle); 
echo "Tabelle trovate:  ". $num . "
<HR>";
$i=1;
while ($rec_tabelle=mysql_fetch_array($tabelle))
{
$query ="(SELECT Cognome FROM $rec_tabelle[0] WHERE Cognome='$cognomedacercare')"; 
if ($i < $num) $query .=" UNION ";
echo " $query"; 

$result = mysql_query($query);

$i++;
} 


$num_record = mysql_num_rows($result); 
echo "Record trovati: $num_record
"; 

while ($row = mysql_fetch_array($result))
{ 
	 
	echo "COGNOME: " . $row[Cognome] . "
";
	
}
il codice ancora non mi funge come vorrei , e credo proprio che non gli piaccia

$result = mysql_query($query);

nel ciclo...

Naturlmente ho provato i due pezzi di codice e vanno bene ma è quella query nel ciclo... che non so tanto come usare, voi come fareste?
Ciao cari.. e grazie