PHP is one of the most versatile programming languages for building web applications. However, one of the problems with PHP is that there is more than one way to do the same thing. This might not sound like a problem, but PHP's ease of use is also its downfall. Because there are less restrictions on the structure of the code you write, it's much easier to write bad code. The solution to this problem is to use a framework and design pattern such as Model, View, and Controller (MVC).
There are many PHP frameworks out there. Here, at WebSan, one of the PHP frameworks we use regularly is Codeigniter. The reason is that it is well documented, small footprint, exceptional performance and has a large user community.
Here are some resources to get started with Codeigniter:
CodeIgniter From Scratch: Day 1, Nettuts.com - Getting Started With the Framework
CodeIgniter From Scratch: Day 2, Nettuts.com - Database Selecting Methods
CodeIgniter From Scratch: Day 3, Nettuts.com - Sending Emails
CodeIgniter From Scratch: Day 4, Nettuts.com - Newsletter Signup