Esto esta bien:
"SELECT * FROM minichat where autor=$autor and fecha < (UNIX_TIMESTAMP()-600)";
NO suelo usar así, sino que escapo las variables, pero no hace la diferencia. Ahora, si $autor no existe te generaría una error, lo mismo si la tabla no se llama así, y el campo fecha no existe. Para saber el error hace como te dije antes (trata de leer, sino escribimos 3 veces las cosas, y termina cansando ayudar ;).:
EJEMPLO
Código PHP:
$sql = "SELECT * FROM minichat where autor=$autor and fecha < (UNIX_TIMESTAMP()-600)";
$r = mysql_query( $sql ) or die ("Error". mysql_error());
Sino imprime $sql y correlo en un editor.