Figure 2.1: The program begins by asking the user to enter some information.
Figure 2.2: I hate it when the warthog's in the kohlrabi.
Figure 2.3: The word "Jacob" is stored in a variable in this page. You can't really see anything special about this program from the Web page itself (even if you look at the HTML source). To see what's new, look at the source code of hiJacob.php.
Figure 2.4: This error will occur if you forget to add a semicolon to the end of every line.
Figure 2.5: This program shows the words to a popular song. They sure repeat a lot.
Figure 2.6: This program does basic math on variables containing the values 3 and 5.
Figure 2.7: This is an ordinary HTML page containing a form.
Figure 2.8: The resulting page uses the value from the original HTML form.
Figure 2.9: The links on this page appear ordinary, but they are unusually powerful.
Figure 2.10: When I clicked on the "Hi Elizabeth" link, I was taken to the HiUser program with the value "Elizabeth" automatically sent to the program!
Figure 2.11: The Google PHP runs a search on www.google.com for the term "PHP".
Figure 2.12: The Google search for "Absolute Beginners Programming" shows some really intriguing book offerings!
Figure 2.13: The borderMaker HTML page uses a text area, two list boxes, and a select group.
Figure 2.14: The borderMaker.php code reacts to all the various input elements on the form.
Figure 2.15: My plan for the story game. I thought through the story and the word list before writing any code.
Chapter 3: Controlling Your Code with Conditions and Functions
Figure 3.1: This is a new twist on an old dice puzzle.
Figure 3.2: The die roll is randomly generated by PHP.
Figure 3.3: When the roll is not a one, nothing interesting happens.
Figure 3.4: When a one appears, the user is treated to a lavish multimedia display.
Figure 3.5: If the program rolls a "one," it still hollers out "Ace!"
Figure 3.6: If the program rolls anything but a one, it still has a message for the user.
Figure 3.7: The roll is a 5, and the program shows the binary representation of that value.
Figure 3.8: After rolling again, the program again reports the binary representation of the new roll.
Figure 3.9: This version shows a die roll in Roman numerals.
Figure 3.10: The HTML page is actually produced through PHP code.
Figure 3.11: The result is produced by exactly the same program.
Figure 3.12: This song has a straightforward verse, chorus, verse, chorus pattern.
Figure 3.13: While the output looks similar to Figure 3.12, the program that produced this page is much more efficient.
Figure 3.14: Variable $a keeps its value inside a function, but $b does not.
Figure 6.1: The user is an administrator, preparing to edit a quiz.
Figure 6.2: The user has chosen to edit the Monty Python quiz.
Figure 6.3: The user is taking the Monty Python quiz. If you want to become a serious programmer, you should probably rent this movie. It's part of the culture.
Figure 6.4: The grading program provides immediate feedback to the user and stores the information in a file so the administrator can see it later.
Figure 6.5: The log retrieval program presents an activity log for each quiz.
Figure 6.6: The file has been loaded from the drive system and prettied up a bit with some CSS tricks.
Figure 6.7: The cartoonifier program shows what would happen if Shakespeare were a cartoon character.
Figure 6.8: This HTML file was automatically created by imageIndex.php.
Figure 6.9: The program created several form letters from a list of names and e-mail addresses.
Figure 6.10: The data file for this program was created in Notepad.
Figure 6.11: This diagram illustrates a user's movement through the quiz machine system.
Figure 7.1: The user can choose an option. Let's hop onto that sub...
Figure 7.2: Maybe the warehouse would have been a better choice after all.
Figure 7.3: This page provides information about each segment in the game, including links to directly edit each segment.
Figure 7.4: From this screen it is possible to change everything about a node. All the nodes that have been created so far are available as new locations.
Figure 7.5: The MySQL program connecting to a database.
Figure 7.6: The MySQL command line tool after I created the phonelist table.
Figure 7.7: MySQL tells you the operation succeeded, but you don't get a lot more information.
Figure 7.8: The result of the SELECT statement is a table just like the original plan.
Figure 7.9: The SOURCE command allows you to read in SQL instructions from a file.
Figure 7.10: This screen helps you connect to a data server.
Figure 7.11: It's easy to create a table and modify its structure with SQLyog.
Figure 7.12: You can edit a number of records easily in the edit view.
Figure 7.13: The export result set dialog allows you to save table data in a number of formats.
Figure 7.14: You can easily print HTML summaries of your data results.
Figure 7.15: I set up the phone list data as a tab delimited file and read it into Excel.
Figure 7.16: The XML form of the data generates HTML-like tags to describe the fields in the table.
Figure 7.17: The schema for a table describes important information about the table's structure.
Figure 7.18: From this dialog box you can generate code that will manufacture replicas of any database created or viewed with SQLyog.
Figure 7.19: The SELECT query is in the top right section, and the results are shown underneath.
Figure 7.20: This Query returns only the names and weapons.
Figure 7.21: If you know how to set up the query, you can get very specific results. In this case, the query selects only heroes with a laser pointer.
Figure 7.22: This query shows the entire database sorted by the weapon name.
Figure 7.23: This query sorts by the power in descending (reverse alphabetical) order.