prova a metterlo cosi':

Codice PHP:
?>
<table border="10" cellspacing="4" cellpadding="4" width="60%" height="80%"><?
$file 
'/foto/'.$row['LISTA'].'-'.$row['POSIZIONE'].'.jpg';

if(
file_exists($file))
?><tr><td colspan="2"><center>[img]<?=$file?>[/img]</tr><? }
else
?><tr><td colspan="2"><center>[img]/foto/1.jpg[/img]</tr><? }

?>
<tr><td>[i][b]N[/b][/i]<td><p align=left> <?=$row['N']?>[i][b]<font color=#A2A9E7>[b]  LISTA[/b][/i] <?=$row['LISTA']?>[i][b]  POSIZIONE[/b][/i] <?=$row['POSIZIONE']?></font></tr>
<tr><td>[i][b]Autore[/b][/i]<td><p align=justify> <?=$row['AUTORE']?></tr>
<tr><td>[i][b]Titolo[/b][/i]<td><p align=justify> <?=$row['TITOLO']?></tr>
<tr><td>[i][b]Editore[/b][/i]<td><p align=justify> <?=$row['EDITORE']?></tr>
<tr><td>[i][b]Anno[/b][/i]<td><p align=justify> <?=$row['ANNO']?></tr>
<tr><td>[i][b]Descrizione[/b][/i]<td><p align=justify> <?=$row['DESCRIZIONE']?></tr>
<tr><td>[i][b]Stato[/b][/i]<td><p align=justify>disponibile</tr>
<tr><td>[b]Prezzo[/b]<td> € <?=$row['PREZZO']?>,00</tr>
<tr><td colspan=2><center>[url="indexposta.php?N=<?=$row['N']?>"][img]icona order.gif[/img][/url]</tr>
</table>
<?
mysql_close
($db);
comunque ho notato che ci sono errori anche nel codice html.. primo tra tutti il doppio apice delle propriea' degli oggetti, e poi i dati all'interno della tabella

due appunti sul php invece: quando usi un dato di un array fuori da una echo() o una print () l'indice dovrebbe stare tra apici, se no potrebbe darti problemi; quando invece la striga da stampare con echo() e' limitata da apici, il doppio apice non ha bisogno di escape altrimenti ti stampa anche quello

danno