How we use it:
First, let's see how MovieChus works for the user. Let's use as an example the selection of
GENRE
. 
If the user does not select
DATE RELEASED
,
ACTORS
or DIRECTORS
, then by default the results shown will be with all actors, all directors, and released in or after 1990. We wont be selecting any other criteria, so that is
how are results will be filtered. For genre you can select whether to search for movies that have any of the genres you have selected, or to search for movies that have ALL of the genres selected.

We chose the
ACTION
and ADVENTURE
genres, and chose to only see movies that were in both of those genres.

These are our results. We can see there are 162 movies in the IMDB database that are catalogued as being in both the adventure genre and the action genre, have been released in or after 1990 and
have an average user rating of 7.0 or above. These movies are ordered by highest to lowest rating, then by number of people who voted.
Now, if the user only wants to see the best of the best, they can change the ratings to range from 8.5 to 10.0.

Now the user is looking at what are, according to the IMDB database, the top five action and
adventure movies made in the last 30 years. They are:
But what if the user is curious and wants to see the worst movies. They can change the ratings range to 0 to 5.0, sort by lowest rating and change the number of movies loaded to 50.
- Incredibles 2
- Inception
- Avengers: Infinity War
- Bilal: A New Breed of Hero
- Gladiator

The lowest rated action/adventure movie is, unsurprisingly,
Attack of the Jurassic Shark (2012)
. Now if the user wants to find a new great movie in their favorite genre they can, or if they just want to have a good laugh, they can dig in to some of worst. How it was made:
Everything started with the publically available IMDb datasets that can be accessed an downloaded by anyone. These were then altered to fit what I thought I would need. I ended up with 6 datatables: RATINGS, GENREMOVIE, REGIONS, CREW, PEOPLENAMES AND NAMES.

Using SQL, a new datatable
TEMPORARYSEARCH
is created each time a user hits SUBMIT. This table holds all of the data needed to describe each movie to the user: title, year released, genre, country released in, cast and crew names and roles and unique identifying numbers for both the movie and the actors. All of this info comes from four tables -
GENREMOVIE, PEOPLENAMES, REGIONONE
and RATINGS
, all connected by the unique ID TCONST.
Now the genres selected by the user (adventure and action) are converted via form to an array and searched for in table GENREMOVIE.
If no genre is selected, then the app will simply not factor genre in, and the
WHERE
statement will not include it. The DATE RELEASED
criteria is similar, except if no dates are chosen, the app will default to G.STARTYEAR>=1990
in the WHERE
statement. The actors and directors are very different, because there are so many options, the user must freely enter their choices. 
This is done by using AJAX to fetch matching actors' names from a special datatable any time the user enters a key. The user can then add as many actors names as they'd like to search for.
The
TEMPORARYSEARCH
datatable is then created that holds all of the movies that fit your criteria, and the user rating range you select will determine what slice of that table you will see. So our final movie list will include any movies with Liv Tyler, Leonardo DiCaprio, Bruce Willis and Winona Ryder that are in both the Action and Adventure genres, and also have any user rating, 0 to 10.0. And here they are:
