Building a database driven site virtually consists of knowing how to use less than 10 things:
Basically just read the [Language Reference section and the [url="http://ca.php.net/manual/en/ref.mysql.php"]MySQL Reference](http://ca.php.net/manual/en/langref.php) page and you're good to go.
Oh, and you need to learn SQL at some point, but you can get off with the basics:
- Knowing how to use phpMyAdmin (relatively straight forward)
- SELECT fields FROM table WHERE field='value';
- UPDATE table SET field='newvalue';
- INSERT table VALUES('field1', 'field2')
- DELETE FROM table WHERE field='value';
Literally, all of the tutorials out there are way too complicated for beginners. Reading books for learning PHP has always seemed redundant to me, considering how basic the syntax is (just to clarify, I mean for learning the basics of PHP -- obviously learning OO techniques or proper database design you could use books, but that basics are pretty... basic).
Once you understand everything from the above links, it'll be a lot easier to follow tutorials, or follow books (ie. PHP Anthology).
For me, I read a few tutorials on MySQL (sample chapters of Kevin Yank's book, as well as something from Harry Feucks' old site), and I was writing a basic database program (basic as in adding/editing/deleting/viewing) within an hour or two.
From there, you should try and write a larger app (I chose to write a bulletin board as my first app, started the same day that I "learned" PHP). If you have a large app to work towards, you'll be able to learn as you go. Writing a large application is nothing more than a bunch of small little applications, so try not to get intimidated.
The best part about writing a larger app is that you'll discover new functions. For example, one day I needed to show just the first 200 characters of the description and so I posted here at SP. Virtually instantly I was given the response to use "echo substr($a, 0, 200); if (strlen($a) > 200) echo '...';". That's how I learned what substr and strlen were. As soon as I found out about the function, I went to php.net/substr and php.net/strlen and read the manual page.
As with everyone, you'll always keep coming across new functions all the time. The key is that when you ask for PHP help at SP (or any other forum), you MUST learn what the given function does. The single worst thing you can do is to take the code they give and just implement it. There are TONS of people here at SP who ask virtually the same question dozens of times because they never actually learn -- it's very frusturating to watch.
Over time, your internal library of PHP function knowledge will grow to the point that you can do almost anything without referencing the manual. And hey, there's no shame in going back to the manual now and then -- the other day I went to the manual for the function in_array because I wasn't sure which was the needle parameter (which you'll notice is a huge issue with PHP -- things tend to jump back and fourth).
Of course, that's just my philosophy. I'm sure a lot of other people will tell you to read a bunch of books and stuff, but it'll ultimately be your decision what route you take.