Best practice for website organization, clean urls

i have been reading sitepoint’s ‘how to build a database driven website with php and mysql’ book but also picked up another php/mysql book from my local library. the sitepoint book encourages site organization using folders, controllers and templates, but the other book i picked up at the library seems to include all the code into one script-html hybrid file. the folder-controller-template method seems to make more sense to me as it keeps the markup separate from the scripting code which as far as i can see (in my limited web-building experience/knowledge) would be useful for future updates or changes.

my question: is there a best practice for how to organize one’s website? or is it all merely a personal preference? also (sort of a sub-question here) - how do i create permanent urls for blog posts (i’m building a blog from scratch with php/mysql)? i can access single posts using a url with a query string but assistance with “clean” urls would be much appreciated. thanks!