Faccio prima se vi metto lo script e commento:

<?php
mysql_query('set names utf8');

if(!isset($_FILES['foto']['name'])){
$titolo=$_POST["titolo"];
$articolo=$_POST["articolo"];
$autore=$_POST["autore"];
$data=$_POST["data"];
$id=$_POST["id_articolo"];

$aggiornamento=("UPDATE news SET titolo='$titolo',articolo='$articolo',autore='$aut ore',data='$data' WHERE id='$id'");
$controllo=mysql_query($aggiornamento) or die(mysql_error());
}
else{
$file=basename($_FILES['foto']['name']);
$immagine="$file";
$titolo=$_POST["titolo"];
$articolo=$_POST["articolo"];
$autore=$_POST["autore"];
$data=$_POST["data"];
$id=$_POST["id_articolo"];

$aggiornamento=("UPDATE news SET immagine='$immagine',titolo='$titolo',articolo='$a rticolo',autore='$autore',data='$data' WHERE id='$id'");
$controllo=mysql_query($aggiornamento) or die(mysql_error());
}
?>


L'intenzione è semplice, in un precedente form(questo è lo script di elaborazione) do la possibilità all'utente di modificare certe cose, tra cui la foto associata a un articolo.Nel database non è ovviamente salvata la foto ma solo il nome della foto(es:fotoprova.jpg) poi su altre pagine mi basta tirar fuori il nome e via mi visualizzo la foto.
Ora ci può essere la possibilità in cui uno voglia lasciare la foto come stà ma vuole modificare altre cose.Con questo intento ho piazzato l'if iniziale che dovrebbe controllare se uno ha caricato una nuova immagine oppure no, nel caso in cui non l'abbia fatto, deve aggiornare solo gli altri campi altrimenti deve aggiornare tutto.
Il problema è che mi aggiorna sempre tutto che ci sia o no un file nel form riguardande l'immagine, capirete che se non metto nulla, mi cancella quello che c'era prima.
Insomma devo controllare che ci sia o no un file caricato nel form, se c'è aggiorna se non c'è deve lasciare tutto com'era prima.

Scusate il papiello spero possiate aiutarmi!

Grazie