A8-Query and Report

On This Page


Overview

During this assignment, you will:

  • Allow a user to query your project database
  • Create a report based on the entered data and a SELECT statement
  • Use arrays to extract data from a result set

Note that you should keep your forms and form processing simple for this assignment. We will be talking about how to organize complicated forms in lesson 9.

Specifications

This assignment has several parts and you must complete all parts for full credit.

  1. First make sure you have completed the exercises from lesson 8 and have saved the files using the specified names exactly. Using the specified file names makes for easier grading.
  2. Create an input page for your project that allows a user to enter data and get a report based on the data they enter.

    The user in this case may be an administrator or an anonymous visitor to your Web site. Make sure your README.txt file identifies the name of the page used to provide data for the query.

  3. Create a PHP script that processes the input data to prepare a report as follows:
    1. Make a SELECT query on your database
    2. Use one or more of the following functions to get data into an array:
    3. Display some or all of the data retrieved from the array

  4. The name of the web page that reports data from the database must be called report.php.

    Using the specified name makes grading easier. After you turn in the assignment, you can change the name of the page for your final project.

  5. Make sure the web page produced by report.php has the following HTML tags:
    1. Opening and closing HTML tags
    2. Opening and closing head tags
    3. Opening and closing title tags
    4. Opening and closing body tags

    Note: you can verify the tags by viewing the HTML source.

  6. Use the included file includes/dbconvars.php for all database connections in your code.

    Even though you do not need to submit your dbconvars.php file, the instructor will use one to test your work. Failure to use a dbconvars.php file will result in a poor grade.

  7. Export (dump) your database as SQL statements to a text file using the technique we discussed in lesson 2.1.5. Name your file after your database name and add the extension .sql to the name (dbname.sql). For example, the artzy database export file would be named artzy.sql.

    Make sure that your dbname.sql file:

    1. Does not contain a SQL 'USE' or 'CREATE DATABASE' statement anywhere in the file
    2. Includes DROP TABLE IF EXISTS statements for all tables

    Note that phpMyAdmin supports all these behaviors if you select the correct export settings.

  8. Create a PHP comment at the top of all your report.php page formatted like the following:
    /**
    * CIS-165PH  Asn 8
    * report.php
    * Purpose: Report page for my glorius project!
    *
    * @author Your Name
    * @version 1.0 4/01/2013
    */
    

    Remember that PHP comments must be enclosed within PHP tags. You will get no credit for this part of the assignment if you use HTML comments. For more information on documenting PHP code, see: How To Document PHP Code.

  9. In your README.txt file provide instructions on using this assignment. Make sure you identify which page is used to enter the data used in the query. Also, if a password is required, please include a password. If any particular values are required for a form, please provide the values.
  10. Zip your files and submit the zipped archive file to Blackboard as explained in the section of this document: What to Turn In.

    Note: Please do not turn in more than one *.sql file or I may grade using the wrong file. Also, please do not put any spaces or special characters like #, : or $ in any file or folder names.

Sample Operation

You can view an example of a report and query operation called Show Artzy! Note that you are free to implement any type of report and query operation and do not need to follow this example.

Extra Credit

The following are worth extra credit points:

  1. Read ahead in the textbook and use programmer-defined functions to organize your code. (1 point)
  2. Thinking about security, restrict the queries that a user can make on your database. Describe your technique in your README.txt file. (1-2 points)

Make certain that your README.txt file lists any extra credit attempted.

Grading Criteria

The instructor will evaluate your assignment using the following criteria. Each criteria represents a specific achievement of your assignment and has a scoring guide. The scoring guide explains the possible scores you can receive.

Some scoring guides have a list of indicators. These indicators are a sign of meeting, or a symptom of not meeting, the specific criterion. Note that a single indicator may not always be reliable or appropriate in a given context. However, as a group, they show the condition of meeting the criterion.

For information on grading policies, including interpretation of scores, see the course information page.

Lesson Exercises

  • 2: All lesson exercises attempted and turned in
  • 1: Some lesson exercises completed and turned in
  • 0: No lesson exercises completed or turned in

Database Export

  • 2: Database loads from dbname.sql file with no errors or warnings
  • 1: Database loads from dbname.sql file but has errors, warnings or missing data
  • 0: Does not load or dbname.sql file not submitted

PHP Functionality

  • 10: Demonstrates mastery of the assignment
    • Has extra features or demonstrates techniques beyond the assignment
    • Applies concepts from the lesson(s) appropriately
    • Meets all specifications (see above) with particularly elegant solutions
    • No errors encountered during operation
  • 8: Has all the functionality expected of the assignment
    • Demonstrates many techniques from the lesson
    • Meets all specifications (see above)
    • Implementation seems more complicated than necessary.
    • May have one minor error
  • 6: Has most of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets all but one of the specifications (see above)
    • Implementation seems excessively complicated.
    • May have 2-3 minor errors
  • 4: Has some of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets at least 1/2 of the specifications (see above)
    • Implementation seems excessively complicated.
    • May have more than 3 minor errors
  • 2: Serious functional problems but shows some effort and understanding
    • Meets less than 1/2 of the of the specifications (see above)
    • Has a major error or many minor errors
    • Implementation seems very convoluted
    • Demonstrates few techniques from the lesson
  • 0: Does not execute

HTML Code

  • 4: Demonstrates mastery of HTML
    • Has extra features or demonstrates techniques beyond the assignment
    • Meets all specifications (see above) with particularly elegant solutions
    • No errors in the HTML code (both opening and closing tags used)
  • 3: Has most of the functionality expected of the assignment
    • Demonstrates many techniques from the lesson
    • Meets all specifications (see above)
    • May have 1-2 minor HTML errors.
  • 2: Has some of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets some of the specifications (see above)
    • May have 4-5 minor errors
  • 1: Serious problems but shows some effort and understanding
    • Demonstrates few techniques from the lesson
    • Meets few of the of the specifications (see above)
    • Has many errors
  • 0: No HTML file submitted or page does not display anything

PHP Documentation

  • 2: Code is well-documented
    • Name, date, and page description in page comment block
    • Follows format for page comment block
    • Proper use of whitespace and indenting
    • Files are correctly zipped
  • 1: Code has minor documentation errors
    • Has 1-2 documentation errors
  • 0: No apparent attempt at documentation

README.txt File

  • 2: README.txt file submitted with specified information included
  • 1: README.txt submitted but some information was not included
  • 0: No README.txt submitted

Maximum Score: 22, plus extra credit

What to Turn In

Submit your assignment following the instructions for homework. Create a single zip file with at least the following files in the web-application root folder:

  1. README.txt file
  2. All the exercise files from Lesson 8
  3. report.php file
  4. Your form page that submits the information for report.php
  5. dbname.sql file
  6. Any other file needed to make your report.php page work properly

Note: if you turn in a file with the wrong file name, you may receive no credit.

Your .zip file must include all the files and subdirectories needed to make your assignment function properly and run without errors or warnings. Do not assume that the instructors has any files except dbconvars.php. Your assignment must work as submitted.

Home | Blackboard | Syllabus | Expectations | Schedule
Project | Help | FAQ's | HowTo's | Links
Last Updated: April 15 2012 @19:03:28