Non hai bisogno di usare un ciclo di WHILE, visto che sai in anticipo che il dato estrapolato dal DB è su un solo record, né di passarti il titolo dell'articolo via URL.

Guarda come devi fare. :::::::::::::
Codice PHP:
// link nella pagina con la lista dei titoli
[url='script_result.php?id=$id']$titolo[/url
Questo è invece il codice per la pagina che visualizza tutto il singolo articolo.
Codice PHP:
$id $_GET['id'];

$sql "SELECT script, titolo FROM scripts WHERE id=$id ";
// non ti servono gli apici per $id nella query,
// visto che il campo ID nella tabella è per certo un INT

$result = @mysql_query($sql) OR DIE("


Errore nell'invio della query.

Errore Numero: "
mysql_errno() . "

Tipo di errore: " 
.mysql_error() . "
</p>
"
);

$row mysql_fetch_array($result);

$testo $row['script'];
$titolo $row['titolo'];

// riscrivo parte del tuo codice, ma secondo me
// il controllo htmlspecialchars andrebbe messo nel 
// momento in cui vai ad inserire i testi nel DB.
// nl2br() trasforma tutti gli a-capo della form in tag 

$script nl2br(htmlspecialchars($script));

// qui te lo formatti come ti pare
echo "
$titolo


$script2
"
;

Naturalmente, lo script può essere molto migliorato ma così è come devi lavorare.