To begin, you will need to setup a test bed of your own. For Microsoft Windows users, there are some simple options to get you up and started.
Both EasyPHP and XAMPP will install everything you need to begin.
Next step is to get an editor to use. Which editor you use will depend on you. It's best to try a few till you find one you feel comfortable with.
Again, this is only a few of the available editors out there, try a few see what fits the best.
One of the best places to begin with HTML/XHTML, along with CSS, is W3C Schools. W3C Schools also include tutorials and information for many things, including PHP, XML, ect..
Once you have a handle on creating simple static web pages, its time to move on to something more in depth.
It's time for making your pages Dynamic. For this I recommend PHP (as do millions of others). Best way to start with PHP is to read the manual. PHP has a massive community supporting it, even the manual includes examples of each function. http://php.net/
With PHP, you will want to start expanding into data storage. You have a few great options. SQLite being included with PHP is a great start, it will help you to learn the basic principles of SQL based storage.
The next step up from SQLite is a full fledged SQL server. 2 great options for this is MySQL or PostgreSQL (my personal favorite).
Some additional resources to help you along: