If the fans are running all the time, it is possible that the PCM is getting the temp from the coolant temprature sensor to turn on the fans. This would explain why the fans run all the time.
If the fans run even when the engine is cold, then the PCM is either getting bad info from the coolant temp sensor, or it the PCM itself may be faulty.
Insufficient coolant level would cause the temperature to escalate, not cover the sensor, and not go thru the hoses to the heater core, therfor no heat.
So do this, check the coolant level while the engine is cold. If there is NO or low fluid in the recovery tank, then add the appropriate mixture and level (level is on the reservoir).
Let the egine warm up and see if problem is fixed. If you have heat, you found your solution, but not your problem. Where did the water (coolant) go.
If this does not fix the problem, then you may have a bad component or a hose blockage.