If there is spark then a bit of carb cleaner sprayed into the intake will get the engine started. The fuel injector signal or lack there of, can be determined by removing the electrical connectors at the injectors and installing a small light bulb called a "noid" light and watch to see if it lights up indicating fuel being injected. It is possible the computer that controls spark and fuel is faulty. I recommend seeking out a local BMW shop for the diagnostics.