codice:
SELECT news.titolo, 
news.testo, 
news.data, 
news.nome AS autore, 
autori.mail 
FROM news, autori 
WHERE news.nome = autori.nome 
AND id = '$id'
La query e' corretta ed e' la forma theta di un INNER JOIN

Verifica che corrispondano l'id con l'uguaglianza richiesta. Metti anche la tabella nell'id. news.id oppure autori.id

Nella query aggiungi la segnalazione di errore mysql_error().

Hai un errore nel while ma forse solo di distrazione.