As the title to my review suggests, if I had to describe this book in one sentence, that is the sentence I would have to use.
If someone with a rudimentary understanding of web design (someone that knew the basics, such as what (X)HTML tags do, and someone that has a decent grasp on how to put together static web pages) asked me what one book they should buy in order to better their web design skills, "PHP Web Development with Macromedia Dreamweaver MX 2004" would be the book I would suggest to them. The reasons for this, I cite below. I also cite below the reasons why I would recommend this book to anyone who -- like myself -- has been hesitant to delve into designing dynamic websites, and in particular anyone who has been hesitant to put their feet down and take the plunge into PHP; the most popular scripting language in the world today for dynamic website solutions.
First off, I think that the authors of this book go above and beyond the call of duty of their subject matter, in that they included several chapters in this book that -- strictly speaking -- didn't have to be included. Had they followed a similar route to a lot of technical books out on the market these days, they could simply have included the bare-bones amount of information needed to do what the title of the book implies: develop dynamic PHP websites in DWMX 2004. However, the book would have been half the size, and so much the worse for it had they decided to take that route. I, and I'm sure many other readers of the book are thankful that they didn't take that route.
Instead, they include four chapters that make this book an invaluable addition to the shelf of any web designer who uses Macromedia Dreamweaver software to design websites. These four chapters are: Web Standards in Dreamweaver; Code Reuse with Dreamweaver and PHP; Dreamweaver Extensions; and Debugging and Error Handling. If you buy this book, even after you have finished it I guarantee that you will be coming back to it, to one or more of the above chapters. Why?, you might ask. The reason is simple:
In "Web Standards in Dreamweaver", the authors wisely enlisted the expertise of Rachel Andrew (one of the leading advocates of Web Standards, who is the Web Standards Project's "Dreamweaver Task Force" Member) who provides readers with a crash course in web standards with Dreamweaver. Calling it a crash course is not an overstatement -- in 70 pages Rachel covers a vast array of difficult topics ranging from the basics of working with Cascading Style Sheets, to authoring web pages that comply to current web standards (XHTML and CSS) in Dreamweaver; not to mention the fact that she offers guidelines for producing table layout webpages in DW -- and *then* shows how to move to constructing CSS layout webpages in DW. I own complete books on web standards (all useful for various reasons), but trust me when I tell you that Rachel Andrews essentially packs all of the practical design advice from these books into one chapter, and then some. It is no understatement to say that if you are new to designing with web standards in mind, you will be well on your way if you commit all of the information in this chapter to memory and incorporate it into your design practices.
The chapter on Code Reuse with Dreamweaver and PHP lays out in clear language and no-nonsense discussion the various advantages and disadvantages of the built-in code reuse features of Dreamweaver (templates, library items, and the Snippets panel), and of using include files with PHP. Not only that, but as icing on the cake it shows you how to build your own PHP functions, in plain langauge. Before I bought this book, I never would have even joked about writing my own PHP function -- even though I bought a fairly comprehensive book on PHP several years ago, it has never been of much use to me. In fact, I think that it made the prospect of using PHP to produce dynamic webpages all the more daunting and inaccessible to me than anything. Thankfully, this book has changed that for me, and I'm sure that I will now be revisiting the book I bought a few years ago with renewed confidence and interest (keeping in mind the changes to PHP since then, of course!).
The chapter on Debugging and Error Handling is, for me, the true gem of this book. That is because -- prior to reading this book -- I found the idea of debugging scripts virtually incomprehensible without having a systematic approach to attempt it. That was the missing link that this book filled in for me, and I think it is one of the main reasons I was initially so unconfident about delving into learning and using PHP; the debugging was just a nightmare to me, and I didn't want to continually have to bother other people to help debug simple problems. After finishing the book I designed a rather complex form (by my standards, anyway) complete with error checking. I debugged it myself except for one small hitch which one of the authors replied to me directly about, and which has been specifically addressed in a second printing of the book -- support doesn't get much better than that!
Of course, the rest of the chapters are equally valuable; the first chapter on PHP gives the most straightforward explanation of what PHP is all about and its basic functionalities that I've read to date. The second chapter on MySQL and SQL gives an impressive introduction to working with MySQL databases and SQL -- this is something I knew a fair bit about before reading this book (since I have a big book on MySQL), but since I hadn't touched it in a few years it was an excellent refresher course, and I think it covers all of the major points someone new to designing and working with MySQL databases would need to get off the ground. The third chapter gives a helpful overview of the changes and additional functionality of DWMX 2004, and once the book has provided you with the basics, you launch head-first into Rachel Andrew's chapter and then into learning how to make dynamic sites with PHP.
The Data Manipulation and Server Behaviors chapter is the one I have to thank for changing the terms "server behavior" and "recordset" from something inaccessible to me, to terms I now use on a regular basis. It removed the bit of mysticism surrounding these features of Dreamweaver that have been there since the first version of it that I used (Dreamweaver 4 Ultradev) but have always avoided like the plague. Lots of useful information in that chapter, and it explains how to use some of the most common built-in server behaviors that come packaged with DWMX 2004 (which *will* be helpful down the road, for anyone building dynamic sites with DWMX 2004 and PHP).
Finally, the book contains a complete 120-page (huge) case study which guides you through building both an administrative backend and a full frontend to a website, complete with many features that would be oft-requested by a lot of organizations and/or very useful to them! It also contains something else that didn't strictly *have* to be included but is something I (and undoubtedly many others) are happy was included -- how to build a 'smart' contact form using PHP, with form field validation. Add to that the fact that you are provided with the code for several handy custom PHP functions (in addition to being taught earlier in the book how to write your own) and it makes for a great culminating chapter to a great book.
If I had to find one downside to the book, it is that CSS is essentially briefed over (Rachel Andrew provides all of the basic elements needed to get started, but understandably doesn't get into too much detail as her chapter is an overview of so many things). So if you are new to CSS I would suggest getting ahold of a good book on CSS. Anything by Eric Meyer will do the trick, but which one you go with will depend on your learning style. There is an Owen Briggs book that is supposedly really good too, that I plan to get my hands on soon.
In conclusion, I would absolutely recommend this book to anyone wishing to learn PHP (who doesn't 'think' like a programmer -- meaning that they learn better from pragmatic examples in a 'big picture' content, than from simply reading a technical treatise on the syntax of a scripting or programming language, with descriptions of its functions outside of an overarching context of how they might be used within a webpage and/or website as a whole). Especially those who already use Dreamweaver to design for the web.
I would also recommend it for programmer-types, believe it or not -- but for different reasons. A good friend of mine is a programmer, and he avoids Dreamweaver like the plague. However, he (and other talented programmers like him) would probably be surprised at how much quicker they could be designing webpages if they customized the heck out of Dreamweaver (by extending it to suit their programming style, and to deal with the typical sorts of tasks they code) and I think this book would help convince them of that, from a combination of the chapters on Web Standards and Dreamweaver, Extending Dreamweaver, Code Reuse with Dreamweaver and PHP, and the case study.
That being said, if you are interested in learning PHP to enter the fray of designing dynamic websites, this book would be an invaluable first step to making the transition. For all of the reasons cited above, I think that this book is worth its weight in gold, and it earns the title of "most valuable book on web design that I currently own". This is a book that I will be coming back to, because contained within its pages are not only examples of how to design pages with PHP and DWMX 2004, but the basic instructions you need to extend both Dreamweaver, and yourself as a web designer; teaching you not only how to do something according to a template or example, but how to go about 'breaking out of the box' when you are ready to, and coming up with your own templates and custom web solutions.