è naturale che non va

devi mettere gli apici per le stringhe dentro l insert ti faccio un esempio:
$nome = "Esitam";
$query = mysql_query("INSERT INTO nomi (nome) VALUES ('$nome')");

Quindi nel tuo caso sarà:
$query=mysql_query("INSERT INTO prova(firstname, lastname, number) VALUES('$fname', '$sname', $num)");

Se $num è un numero non ci vanno gli apici