Conceptually, either of the scenarios could be considered "3-tier" - from a logical perspective data-logic/database could easily be considered the "same tier". This is a fine point that shouldn't be of concern.
In a dynamiclly generated web app (also sometimes called a data-driven site) it is often discussed as having another conceptual "tier":
Browser -> Web Presentation -> Business/Application Logic -> Data store.
Browser: contains some logic for validations and accepts user input
Web Presentation: Dynamically generates the HTML, and handles user requests
Business Logic: Does the work of the application.
Data store: Persists and retrieves data as required by the business logic.
I suggest that this isn't an area where it matters much exactly how you call things - the basic idea is that the logic is divided into various tiers that are best suited to handling the logic needed.
Woody Z http://www.learntoprogramnow.com