Sorry - that was a bit cryptic.
Your main html sections will probably be "static", e.g. navbars, sidebars, footers, banners etc etc
If you want to give total control - you'll probably need to created 'template' files to hold the various 'static' elements. You don't need a templating system - you can create your own. The following example is just that - not to be taken too seriously - just one way. There are far better ways of doing things I'm sure.
In
/templates/main.php
<?php
include("{$_SERVER['DOCUMENT_ROOT']}/includes/config.php");
include("{$_SERVER['DOCUMENT_ROOT']}/includes/functions.php");
include("{$_SERVER['DOCUMENT_ROOT']}/includes/dtd.php");
include("{$_SERVER['DOCUMENT_ROOT']}/includes/head_n_body.php");
include("{$_SERVER['DOCUMENT_ROOT']}/includes/bannerarea.php");
include("{$_SERVER['DOCUMENT_ROOT']}/includes/nav.php");
include("{$_SERVER['DOCUMENT_ROOT']}/includes/side.php");
include("{$_SERVER['DOCUMENT_ROOT']}/includes/main_content.php");
include("{$_SERVER['DOCUMENT_ROOT']}/includes/footer_n_end.php");
?>
Then in your actual displayed page, you could have something like:
<?php
include("{$_SERVER['DOCUMENT_ROOT']}/templates/main.php");
?>
And that's it. The static content (structural html and the odd piece of static text/logos etc) can be drawn from the individual include files AND/OR from a DB, which is handled by the include files.
The dynamic data from the DB can be placed into placeholder variables within the include files.
<?php
$navlist = getNavItems($_SERVER['PHP_SELF']);
//there are better ways of doing this - the function could spit out parsed html containing the navlist (from the DB) pertaining to that page
?>
<ul id="nav">
<?php echo $navlist;?>
</ul>