al usar @ solo estas haciendo que no se muestre el error, no lo estas corrigiendo. El error de mysql_fetch_array se debe a que tu consulta devuelve un error.
Como dijo
skiper0125 modifica esta linea:
No debes usar @ ya que simplemente estas ocultando errores, y no corrigiendolos.
Un saludo