Se non ho capito male, tu vuoi che i campi della tabella vengano riempiti solo se vengono effettivamente inviati dalla form.
Io spezzerei la query di inserimento in più query così:
Codice PHP:
if(isset($_FILES['foto1'])){
$sql = "insert into news (id, titolo, categoria, foto1, news, data)
values (NULL,'$titolo','$categoria','$i-$foto_name1','$news',NOW())";//invece di mettere \" e \", puoi mettere semplicemente l'apice ' :)
$risultato = @mysql_query($sql) or die (mysql_errno() . ": " . mysql_error());
}
if(isset($_FILES['foto2']))
{
$sql1 = "insert into news (id, titolo, categoria, foto2, news, data) values (NULL,'$titolo','$categoria','$i-$foto_name2','$news',NOW())";
$risultato1 = @mysql_query($sql1) or die
(mysql_errno() . ": " . mysql_error());
}
//così anche per la terza foto