,

Lab :

Except where otherwise noted, the contents of this document are Copyright © Marty Stepp, Jessica Miller, and Victoria Kirst. All rights reserved. Any redistribution, reproduction, transmission, or storage of part or all of the contents in any form is prohibited without the author's expressed written permission.

thanks to former TAs Victoria Kirst, Jeff Prouty, Morgan Doocy, Brian Le for their work on these labs.

Valid HTML5 Valid CSS

Basic lab instructions

Today's lab

Today you will practice solving problems similar to the ones that may appear on your final exam.

We recommend that you work on most of these problems on paper first. If you want to try typing some of them in afterward, that is fine.

You won't be able to finish all of the problems during the lab time. So choose a few topics that you want to practice the most and solve those problems. You can try solving the rest later if you want.

Exercise : Ajax/XML

Write the complete JavaScript code to fetch XML data about rectangles and display it on the current page.

Exercise : Ajax/JSON

Now suppose the rect.php page produces data in JSON format instead.

Exercise : Web Services

Write a PHP webservice named classes.php that displays when a student took classes from particular departments

Exercise : Web Services continued

Exercise : Regular Expressions 1

Write a regular expression (slides) that would match the following kinds of patterns. You can use the site Rubular to test your regex.

Exercise : Regular Expressions 2

Write a regular expression (slides) that would match the following kinds of patterns. You can use the site Rubular to test your regex.

Exercise : PHP

Write a PHP web service lookup.php that looks up a name in a file and outputs a URL about the person.

Exercise : SQL

Write an SQL query to show all actors who share the same last name and were in a movie together. Display the first names, last name, and movie name. Do not match up an actor with him/herself. Order by last name.

+-----------------+------------+-----------+---------------------+
| first_name      | first_name | last_name | name                |
+-----------------+------------+-----------+---------------------+
| Bill (I)        | Frankie J. | Allison   | Ocean's Eleven      | 
| Anthony         | Frankie J. | Allison   | Ocean's Eleven      | 
| Anthony         | Bill (I)   | Allison   | Ocean's Eleven      | 
| J. Todd         | Sharon     | Anderson  | Fargo               | 
| ...             | ...        | ...       | ...                 |
| Elenor          | Rowan      | Witt      | Matrix, The         | 
| Ben (I)         | Samuel E.  | Wright    | Little Mermaid, The | 
+-----------------+------------+-----------+---------------------+   134 rows in set

Recall that the imdb database contains the following tables:

actors
idfirst_namelast_namegender
433259WilliamShatnerM
797926BritneySpearsF
...
movies
idnameyear
112290Fight Club1999
209658Meet the Parents2000
...
roles
actor_idmovie_idrole
433259313398Capt. James T. Kirk
797926342189Herself
...

Exercise : PHP, HTML, SQL

(The next 2 slides describe this exercise. Please read them both, then start.)

Write the PHP code to display all the results from the preceding SQL query in two ordered lists.

<!DOCTYPE html>
<html>
  ...
  <body>
    <?php
    display_last_names();
    ?>
  </body>
</html>

Exercise , continued

Your code should produce the following output (abbreviated):

<ol>
  <li>Allison, Anthony / Bill (I): Ocean's Eleven</li>
  <li>Allison, Anthony / Frankie J.: Ocean's Eleven</li>
  <li>Allison, Bill (I) / Frankie J.: Ocean's Eleven</li>
  <li>Anderson, George (IV) / Jo (I): JFK</li>
  ...
  <li>Jones, Annette / James Earl: Star Wars</li>
  <li>Jones, Annette / Linda (I): Star Wars</li>
  <li>Jones, James Earl / Linda (I): Star Wars</li>
</ol>
<ol>
  <li>Kennedy, Caroline / Ethel (II): JFK</li>
  <li>Kennedy, Caroline / Jacqueline (I): JFK</li>
  ...
  <li>Witt, Elenor / Rowan: Matrix, The</li>
  <li>Wright, Ben (I) / Samuel E.: Little Mermaid, The</li>
</ol>

If you finish them all...

If you finish all the exercises, congrats; you're done! If there is still extra time left, go look at the other practice final exam problems that have been posted.

Great work! Good luck on the final exam!