General guidelines for developing a web application
I'd like to suggest ditching PHP as soon as possible. Searching 'php wtf' here should be illuminating. While it is possible to write secure, safe, reliable applications in PHP, I think it is despite the best efforts of the PHP team to make The Most Exciting And Surprisin Language EVAR. With lots of funny side-effects. And pretend-security-options. If most of what PHP looks like is appealing to you, I think I'd suggest using Perl instead. It should be much less surprising.
So, with my rant against PHP out of the way, you have a LOT of much better options. Python has Django, Zope, and Twisted Matrix. They each solve different problems, allowing you to write applications at different levels: Django imposes some Model-View-Controller structure on your code, Zope is a much larger CMS framework, and Twisted Matrix provides a lot of super-keen programming primitives if you want to write things pretty close to the wire. (You're something like five lines of code away from a very-simple-yet-neat web server with Twisted that runs your application code..)
If you really want to learn another language in the process, Ruby on Rails is getting a lot of the hype, and for mostly good reasons. I've really enjoyed coding Ruby on Rails, the imposed structure is fantastic for anything beyond trivial applications, and it mostly gets out of your way with reasonable assumptions.
Perl is 'the old standby'. I'd take it over PHP any day, but I can't stand Perl's OO or modules system. So it's hard for me to really endorse it.
I'd like to suggest against Flash and Silverlight on the client-side: First, Flash is a giant resource hog and security disaster, and Silverlight, while probably better than Flash on both fronts, is even less portable than Flash. (I strongly recommend trying your site on a handful of mobile browsers; it doesn't have to look pretty, but everything ought to work. :)
As a programmer used to developing native applications, I'm expanding my horizons and developing my first web app. I'm intermediate to expert with Linux and C, intermediate with Python and HTML and beginner to intermediate with MySQL and Java.
I'm developing a web app that is more or less a resource allocator for a friend of mine. To put it simply, I want this program to help him manage jobs, assigning technicians and equipment. The main screen will be an embedded Google Calendar frame that can be updated dynamically via. their API.
  Now, certain jobs require technicians to hold certain certificates, and equipment must be calibrated on a specific schedule. I would also like to track extra data, such as phone numbers, e-mail addresses, job information, etc. To top it all off, I want it to look nice!
I've spent quite some time familiarizing myself with PHP, JavaScript and the DOM and I've developed some functionality and a neat UI.
So far I've been coding server-side w/ PHP to deliver dynamic HTML via. MySQL and then JavaScript to manipulate the DOM. I have tables for technicians, certificates, jobs, phone numbers, etc.
My questions are:  

Is there anything missing to my general approach for developing a web app? (Server-side scripting interacts with database to produce dynamic HTML which is then manipulated client-side via. the DOM/client-side scripting).  
I chose PHP because it is commonly associated with web development. What are the alternatives? As a beginner I would like to know the "best" server-side language to learn (and I am up for a challenge), or at least be aware of the alternatives.  
As far as client-side goes it seems that JavaScript is IT. Is it?  
I've heard alot about AJAX but know little to nothing at all about it. Is it an alternative to generating HTML server-side via. a database? What is it/advantages/disadvantages.  
I've read that frames are being deprecated. Should I move away from frames and more towards DOM manipulation?  
If this application is to be available over the internet I will need to setup a login system of some sort. What are common ways of setting up authentication using hosted or private services?
(Getting a little off topic) Any free hosting suggestions? I'm a student, and hosting the server myself would be unreliable for my friend.
I would really love to implement as much of this project via. Python as possible. What can Python do in terms of programming for the browser and what would it require?