Mach es einfach mit 2 Abfragen. Die eine ermittelt alle Autoren, die andere alle Bücher des jeweiligen Autors.
PHP-Code:
$result1=mysql_query('SELECT DISTINCT author FROM tabelle;') or die(mysql_error());
while ($data1=mysql_fetch_assoc($result1)) {
echo '<br><br>'.$data1['author'].'<br><br>';
$result2=mysql_query("SELECT * FROM tabelle WHERE author='$data1['author']';") or die(mysql_error());
while ($data2=mysql_fetch_assoc($result2)) {
echo "$data2['datum'] - $data2['article'] - $data2['text']<br>n";
}
}
Edit: Ups, wie ich sehe entspricht das ja fast Deiner Variante (hatte ich mir nicht angeschaut).