I've got a database which has two tables "locations" and "classes". I'm familiar establishing some kind of parent/child situation with my database tables, but that one has tossed me for any loop.

This relationship works the same as you'd expect. The "locations" have multiple "classes". But a few of the "classes" are in multiple "locations". So how do you set this up? Does there have to be another table produced to handle associations?

I'm using MySQL/PHP (just in case that means something)

Yes, you'll need a third table. This really is known as a many-to-many relationship. The table would (I suggest) possess a primary key, an area ID column, along with a class ID column.

Yes, you'll need a third table because of this can be a many to a lot of relationship.

 --------         -----------------
|Class   |       | ClassLocation   |        ------------
|--------|       |-----------------|       | Location   |
|Id      | <---- |ClassId          |       |------------|
|Name    |       |LocationId       | ----> |Id          |
|...     |        -----------------        |Name        |
 --------                                  | ...        |
                                            ------------

It's even possible that you'll require two additional tables when the direction from the relation is essential. When the concept of "class goes to location" is different then this is if "location goes to class" you'll need two join tables since one join table doesn't tell anything concerning the direction from the relationship. However I guess that's not the situation for the situation.

   locations           location_classes           classes

+----+-------+    +-------------+----------+   +----+-------+
| id | title |    | location_id | class_id |   | id | title |
+----+-------+    +-------------+----------+   +----+-------+
|  1 |   foo |    |           1 |        1 |   |  1 | clas1 |
|  2 |   bar |    |           3 |        1 |   |  2 | clas2 |
|  3 |  test |    |           1 |        2 |   +----+-------+
+----+-------+    |           2 |        2 |   
                  |           3 |        2 |
                  +-------------+----------+

You'll need a join table:

tbl_location
ID: int
Name: Varchar(20)

tbl_class
ID: int
Name: Varchar(20)


tbl_classlocation
ID: int
locationID: int
classID: int

Something along individuals lines, basically the classlocation table joins another two (both locationId and classID are foreign secrets in the location and sophistication tables)