Rather than use a database to store content I would use includes. Something like the following might be usefull:
create your template .inc file (for lack of a more creative name I'll call it "page.inc".
This file will set up a default page with a default navigation menu and no content.
page.inc
<?
class Tpage
{
var $navMenu;
var $content;
//Constructor...init your menu here
function Tpage()
{
$this->navMenu = "Default menu code (html)";
$this->content = "";
}
function draw()
{
echo "<table width=100%>
<tr>
<td width=150>$this->navMenu</td>
<td width=*>$this->content</td>
</tr>
</table>";
}
}
?>
Then to create any page you simply do the following
newpage.php
<?
include("path/to/inc/files/page.inc");
$page = new Tpage //Init your page object
$page->navMenu = "new menu code(HTML)";
$page->content = "Welcome to my site";
$page->draw();
?>
...to use your default menu simply dont assign the variable, or to append to your existing menu use .=
I know this way does not give you a database solution however (opinion) I would rather use included files and not use a datbase to store HTML.
I have used this method on a few websites and as you get more complicated with your content it provides a great way to create pages and manage them.