En el sql solo veo que falta un espacio antes de where lo demas parece correcto, las variable dan los valores que tinen que dar? (compruebalo con echo $this->titular; etc...
Código PHP:
function actualizar($id){
$sql="update noticia set titular='".$this->titular."',titular2='".$this->titular2."',fecha='".$this->fecha."',foto='".$this->foto."',cuerpo_noticia='".$this->cuerpo_noticia."',categoria='".$this->categoria."',lugar='".$this->lugar."' where id=$id ";
mysql_query($sql);
}
La funcion actualizar la tienes dentro de la clase noticia?
Quim