Can you bump start the car? If so then I suspect your ignition switch is on its way out. Had the same on my E36 years ago, starter worked fine if you applied 12v direct to the solenoid, made up a temporary engine start button until I figured out it was the ignition switch failing. There was a voltage loss through the ignition switch and the starter solenoid was only getting around 9v when it should get 12v. For that reason the starter wouldn't work or start the car.
Or, your starter solenoid has packed up if the car bump starts.