Section 1 Get started fast with PHP and MySQL
Chapter 1 Introduction to web development with PHP
The architecture of a web application
How a client-server architecture works
How static web pages are processed
How dynamic web pages are processed
A survey of web application software
Highlights in the history of PHP
Highlights in the history of MySQL
The Product Discount application
The user interface
The HTML file
The CSS file
The PHP file
How to edit and test a PHP application
How to edit a PHP page with a text editor
How to start and stop Apache and MySQL on your own computer
How to deploy a PHP application
How to run a PHP application
How to test and debug a PHP page
How to view the source code for a web page
How to use NetBeans to develop a PHP application
How to work with PHP projects and files
How to edit and test a PHP application
How to import and configure a PHP project
Chapter 2 How to code a PHP application
Basic PHP skills
How to embed PHP in HTML
How to code comments and statements
The six PHP data types
How to declare variables and constants
How to get data from a request
How to use the built-in $_GET array
How to use the built-in $_POST array
When to use the HTTP GET and POST methods
How to work with data
How to code string expressions
How to code echo statements
How to code numeric expressions
How to use the compound assignment operators
How to use some built-in functions
How to use the filter_input() function
The Product Discount application
The user interface
The form in the HTML file
The PHP file
How to code control statements
How to code conditional expressions
How to code if statements
How to code while and for statements
How to pass control to another page
The Future Value application
The user interface
The code for the indexphp file
The code for the display_resultsphp file
How to use the PHP documentation
How to access the PHP manual
How to find the documentation you need
Chapter 3 Introduction to relational databases and MySQL
An introduction to relational databases
How a database table is organized
How the tables in a relational database are related
How the columns in a table are defined
The SQL statements for data manipulation
How to select data from a single table
How to select data from multiple tables
How to insert, update, and delete data
An introduction to MySQL
What MySQL provides
Two ways to work with MySQL
How to use phpMyAdmin
How to start phpMyAdmin
How to log in, log out, and change your password
How to import and run a SQL script that creates a database
How to review the data and structure of a table
How to run SQL statements
How to create users with limited privileges
Chapter 4 How to use PHP with a MySQL database
How to connect to a database and handle exceptions
How to connect to a database
How to handle exceptions
How to get and modify data
How to execute SELECT statements
How to work with the first row of a result set
How to work with all the rows of a result set
How to execute INSERT, UPDATE, and DELETE statements
The Product Viewer application
The user interface
The code
The Product Manager application
The user interface
The code
Expanded contents vii
Chapter 5 How to use the MVC pattern to organize your code
How to use the MVC pattern
An introduction to the MVC pattern
How to code functions
How to redirect requests
The Product Manager application
The user interface
The model
The controller
The view
The Product Catalog application
The user interface
The model
The controller
The view
Chapter 6 How to test and debug a PHP application
An introduction to testing and debugging
Typical test phases for a PHP application
The three types of errors that can occur
Common PHP errors
An easy way to trace the execution of your PHP code
How to debug with Xdebug and NetBeans
How to set and remove breakpoints
How to step through code
How to inspect variables
How to inspect the stack trace
Section 2 Master PHP programming
Chapter 7 How to work with form data
How to get data from a form
How to get data from text boxes, password boxes, and hidden fields
How to get data from a radio button
How to get data from a check box
How to get data from an array of check boxes
How to get data from a drop-down list
How to get data from a list box
How to get data from a text area
How to display data on a web page
How to format special characters
How to format line breaks
How to display data with echo and print statements
Chapter 8 How to code control statements
How to code conditional expressions
How to use the equality and identity operators
How to use the relational operators
How to use the logical operators
viii Expanded contents
How to code the selection structures
How to code if statements with else clauses
How to code if statements with else if clauses
How to use the conditional and null coalesce operators
How to code switch statements
How to use a switch statement in the controller
How to code the iteration structures
How to code while loops
How to code do-while loops
How to code for loops
How to use the break and continue statements
Chapter 9 How to work with strings and numbers
How to work with strings
How to create strings
How to use escape sequences
How to work with string length and substrings
How to search a string
How to replace part of a string
How to modify strings
How to convert strings to and from arrays
How to convert strings to and from ASCII values
How to compare strings
How to work with numbers
How to assign integers
How to assign floating-point values
How to use the math functions
How to generate random numbers
Other skills for working with strings and numbers
How to use the sprintf() function to format strings and numbers
How to convert strings to numbers
Chapter 10 How to work with dates
How to use timestamps to work with dates
How to create and format timestamps
How to work with timestamps
How to use the strtotime() function
Examples of working with timestamps
How to use objects to work with dates
How to use the DateTime class
How to use the DateInterval class
How to use the DateInterval and DateTime classes together
Examples of working with DateTime objects
Chapter 11 How to create and use arrays
How to create and use an array
How to create an array
How to add and delete elements
How to work with variable substitution
How to use for loops to work with arrays
How to create and use an associative array
How to create an associative array
How to add and delete elements
How to work with variable substitution
How to use foreach loops to work with arrays
How to use functions to work with arrays
How to fill, merge, slice, and splice arrays
How to work with queues and stacks
How to get the sum and product of elements
How to search arrays
How to sort arrays
How to modify arrays
How to work with arrays of arrays
Understanding an array of arrays
How to create and use an array of arrays
The Task List Manager application
The user interface
The code for the controller
The code for the view
Chapter 12 How to work with cookies and sessions
How to work with cookies
An introduction to cookies
How to set and get a cookie
How to enable or disable cookies
How to work with sessions
Why session tracking is difficult with HTTP
How session tracking works in PHP
How to start a session
How to set and get session variables
How to manage a session
How to end a session
The Shopping Cart application
The user interface
The controller
The model
The Add Item view
The Cart view
Chapter 13 How to create and use functions
Basic skills for working with functions
How to create and call a function
How to pass arguments by value and by reference
How variable scope works
How to provide default values for parameters
How to work with type declarations
How to use variable-length parameter lists
How to create and use a library of functions
A library of functions
How to set the include path
How function scope works
How to create and use namespaces
Advanced skills for working with functions
How to work with variable functions and callbacks
How to work with anonymous functions
How to work with closures
The Shopping Cart application
The user interface
The model
The controller
The view
Chapter 14 How to create and use objects
How to create and use classes
The code for the Category class
The code for the Product class
How to code properties
How to code constructors and destructors
How to code methods
How to create and use objects
How to code class constants, properties, and methods
How to code class constants
How to code static properties and methods
The object-oriented Product Manager application
The user interface
The model
The controller
The view
Additional skills for working with objects
How to loop through an object’s properties
How to clone and compare objects
How to inspect an object
How to work with inheritance
How to inherit a class
How to use the protected access modifier
How to create abstract classes and methods
How to create final classes and methods
How to work with interfaces
Chapter 15 How to use regular expressions, handle exceptions, and validate data
How to use regular expressions
How to create and use regular expressions
How to match characters
How to use the character class
How to create complex patterns
How to use look-ahead assertions
How to use a multiline regular expression
How to use a global regular expression
How to replace a regular expression with a string
How to split a string on a regular expression
Regular expressions for data validation
How to handle exceptions
How to create and throw exceptions
How to catch exceptions
How to catch errors
The Registration application
The user interface
The file structure
The model
The controller
The view
A long version of the Registration application
Section 3 Master MySQL programming
Chapter 16 How to design a database
How to design a data structure
The basic steps for designing a data structure
How to identify the data elements
How to subdivide the data elements
How to identify the tables and assign columns
How to identify the primary and foreign keys
How to enforce the relationships between tables
How normalization works
How to identify the columns to be indexed
How to normalize a data structure
The seven normal forms
How to apply the first normal form
How to apply the second normal form
How to apply the third normal form
When and how to denormalize a data structure
A database design tool
An introduction to MySQL Workbench
How to use MySQL Workbench to create database diagrams
Chapter 17 How to use SQL to create a database
How to work with databases
How to create a database
How to select a database
How to drop a database
How to work with tables
An introduction to MySQL data types
How to create a table
How to code a primary key
How to code a foreign key constraint
How to alter a table
How to drop a table
How to work with indexes
How to create an index
How to drop an index
How to work with users and privileges
A summary of privileges
How to create, rename, and drop users
How to grant privileges
How to revoke privileges
How to view privileges
Other skills for creating a database
How to load data from text files
How to dump a database to a SQL script
The script for the Guitar Shop database
Chapter 18 How to use SQL to work with a database
How to select data from a single table
How to select columns from a table
How to use an alias for a column
How to select rows with a LIMIT clause
How to select rows with a WHERE clause
How to use the logical operators
How to use the IS NULL operator
How to use the LIKE operator
How to sort rows with an ORDER BY clause
How to select data from multiple tables
How to code an inner join
When and how to use table aliases
How to code summary queries
How to code aggregate functions
How to group queries by column
How to code subqueries
Where to use subqueries
How to code correlated subqueries
How to insert, update, and delete rows
How to insert rows
How to update rows
How to delete rows
Chapter 19 Professional PHP for working with MySQL
Three ways to use PHP to work with MySQL
PDO (PHP Data Objects)
PHP’s mysqli extension
PHP’s MySQL extension
How to work with PDO
How to connect to a database
How to select data
How to insert, update, and delete data
How to work with prepared statements
How to set the error mode for PDO
A model in PDO
How to work with mysqli
How to connect to a database
How to select data
How to insert, update, and delete data
How to work with prepared statements
The object-oriented style compared to the procedural style
A model in mysqli
Chapter 20 A database-driven website
How to work with large text columns
A simple content management system
How to add HTML tags to text
The include files for the Guitar Shop website
The Home page
The directory structure
The utility files
The view files
The Product Catalog application
The user interface
The controller
The view
The Product Manager application
The user interface
The controller
The view
Section 4 Master the advanced skills for building websites
Chapter 21 How to create secure websites
How to use a secure connection
An introduction to secure connections
How SSL authentication works
How to get a digital secure certificate
How to request a secure connection
How to redirect to a secure connection
How to use authentication
Three types of authentication
How to store and validate a password
How to use form-based authentication
How to use basic authentication
How to work with cryptography
An introduction to four cryptography libraries
How to install the Defuse cryptography library
How to encrypt and decrypt data
A class for encrypting and decrypting data
Chapter 22 How to send email
How to send email
How email works
How to set up a test email account
How to use PHPMailer to send an email
A helper function for sending an email
How to use the helper function to send an email
The Registration application
The user interface
The controller
The views
Chapter 23 How to work with files, uploads, and images
How to work with files
How to get a directory listing
How to read and write an entire file
How to read and write part of a file
How to read and write CSV data
How to copy, rename, and delete a file
How to upload a file
HTML for uploading a file
PHP for working with an uploaded file
How to work with images
How to get information about an image
How to read and write images
How to resize an image
How to work with transparency
The Image Upload application
The user interface
The utility files
The controller
The view
Chapter 24 An eCommerce website
An introduction to the website
Prototyping and stepwise refinement
The directory structure of the website
The user interface for end users
The Catalog application
The Cart application
The Checkout and Account applications
The My Account page
The user interface for administrators
The Admin Login and Admin Menu pages
The Product Manager application
The Category Manager application
The Order Manager application
The Account Manager application
Appendix A How to set up Windows for this book
How to install Chrome and Notepad++
How to install the Chrome browser
How to install Notepad++
How to install and configure XAMPP
How to install XAMPP
How to set the default time zone for PHP
How to start and stop the Apache and MySQL servers
How to configure phpMyAdmin
How to install the book applications and databases
How to install the source code for this book
How to create and restore the databases
How to install NetBeans and Xdebug
How to install NetBeans
How to install Xdebug
Appendix B How to set up Mac OS X for this book
How to install Chrome and BBEdit
How to install the Chrome browser
How to install BBEdit
How to install and configure XAMPP
How to install XAMPP
How to set the default time zone for PHP
How to start and stop the Apache and MySQL servers
How to configure phpMyAdmin
How to install the book applications and databases
How to install the source code for this book
How to create and restore the databases
How to install NetBeans and Xdebug
How to install NetBeans
How to install Xdebug