Perché dare informazioni sempre a metà?
L'echo di $num_razze cosa ti dice? Che numero ti restituisce?
Se te l'ho fatto mettere ch sarà un motivo.

Togli @ da qui e riprova
$query = @mysql_query ($sql) or die(mysql_error());