non ci hai ancora scritto esattamente che errore ti da.

Comunque riguardo il codice "corretto" puoi prendere spunto da qui:
codice:
// Se viene effettuata una richiesta in POST
if ( $_SERVER['REQUEST_METHOD'] == "POST" ) {

	// Se il campo data è stato impostato allora $data = $_POST['data'] altrimenti sarà vuoto
	$data = isset($_POST['data']) ? addslashes($_POST['data']) : "";
	$titolo = isset($_POST['titolo']) ? addslashes($_POST['data']) : "";
	$descrizione = isset($_POST['descrizione']) ? addslashes($_POST['descrizione']) : "";
	
	// Questi sono dei controlli standard di base
	// andrebbero corretti e migliorati riguardo la tua specifica situazione
	// ad esempio sarebbe il caso di verificare che la data sia nel formato giusto e che esista
	// poichè se uno nel campo data inserisce "patate" sicuramente è un errore e devi prevederlo e segnalarlo
	
	// Aggiorno la news
	$query = "
		UPDATE news 
		SET
			data = '{$data}',
			titolo = '{$titolo}',
			descrizione = '{$descrizione}'
		WHERE 
			id = '....'
	";
	// Se aggiorni una news, una specifica news, devi poterla identificare.
	// Quale news stai aggiornando?!
	
	$result = mysql_query($query);
	// Controlla che la query sia stata eseguita con successo
	if ( !$result ) {
		die("Si è verificato un problema nell'aggiornamento della news!");
	}
	
	// Elenco delle news
	$query = "
		SELECT *
		FROM news
		ORDER BY id DESC
	";
	
	$result = mysql_query($query);
	while ( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
		$id = $row['id'];
		$titolo = $row['titolo'];
		$descizione = $row['descrizione'];
		$data = $row['data'];
		
		// esegui altro codice
	}

}
Inoltre quando inserisci del testo in una variabile PHP devi:
Codice PHP:
// Caso 1:
$variabile "Ciao mondo come va";

// Caso 2:
$variabile "Oggi è una \"bella\" giornata";

// Caso 3:
$variabile "Mi hanno detto che {$_POST['nome']} è andato al mare oggi";

// Questo non funziona:
$variabile "Mi hanno detto che $_POST['nome']"
Questa seconda parte per dire che quando fai:
codice:
<form action=\"$_SERVER[PHP_SELF]\" method=\"post\"
sarebbe più corretto scrivere:
codice:
<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\"