"And why is this such a bad idea ?, why is it worse than storing html in a database?"
Well, the main thing is that a database is a place to store data that you need to search in, or manipulate in some way. Like userdata, log entries, statistics. Small pieces of information that you need to process in some way.
If you store HTML or PHP in it, you're just using it as a filesystem, and a database is always 50-100 times slower than the filesystem when it comes to just reading a file. (just opening a database connection can take 0.3 seconds on some servers)
Also, it's a matter of maintenance. Data in a database can only be edited by taking it out of the database, editing it, and uploading it again. A sharp contrast with the filesystem where you can open the file with any editor to change it.
As for PHP in a database, that's even worse.
The code woulc be read into a variable and eval()ed from there. That means the code will be executed right inside the main script.
That means you have to be very carefull about what each script does, and what it's effect on any other scripts could be.
I guarantee you'll spend at least a week trying to find a simple bug that turns out to be something as simple as resetting a value in the smallest, most insignificant part of your scripts.
And then there's recursion. Sooner or later you'll want to include a script inside an included script, and before you know it that script re-includes the parent and boom, byebye server.
It is far better to put the static data in static files. Especially the PHP code, because you're simply not able to debug PHP code if you can't directly access the source. (it's been tried)
A forum, a FAQ, email notification, what else do you need?