Upload
jewel-hart
View
223
Download
0
Embed Size (px)
Citation preview
Project Report 4
• SQL Queries• Due Sunday, 4/5 at 11:59pm• Instructions on how to access team webspace
and SQL database have been sent to everyone– Always use team webspace and SQL Server
account for the project, not your personal ones!• Wednesday’s class: Team discussion on Report
4
Labs
• We have already announced 6 required labs– HTML basics; PHP basics; IF/ELSE and Loop; HTML form; PHP and
SQL Server: Connection; PHP and SQL Server: Queries (case 3a)– The first 6 exercises 5% lab exercise credits
• We will have several additional lab exercises and they are optional– The first one will be announced today– You can earn bonus points by finishing them– Bonus points might be used to curve the final grade
• Depends on how far you are from the curving margin• Depends on how many extra labs you complete
IST210 4
What we have so far
• Using PHP to access and query the database and display results on webpage (week11-2)– http://my.up.ist.psu.edu/zuz22/query.php
What we have so far
• Query the database with constraints (week11-3)– http://my.up.ist.psu.edu/zuz22/case2a.php
IST210 7
HTML Form Element Review: Text Fields
• Text fields are used when you want the user to type letters, numbers, etc. in a form
<input type="text" name="studentID" value= ""/>
IST210 8
HTML Form Element Review: Submit Button
• When the user clicks the "Submit" button, the content of the form is sent to another file, which is defined by action attribute of the <form> tag
<input type="submit" value = "go"/>
IST210 9
HTML Form Element Review: Radio Buttons
• Radio Buttons are used when you want the user to select one of a limited number of choices
<html><form action="process_lottery3.php" method ="post" >
Pick a student (0-4)! <br><input type="radio" name="studentID" value="0"> 0
<br><input type="radio" name="studentID" value="1"> 1
<br><input type="radio" name="studentID" value="2"> 2
<br><input type="radio" name="studentID" value="3"> 3
<br><input type="radio" name="studentID" value="4"> 4
<br><input type="submit" value = "go"/>
</form></html>
Value that will be passed to the process page Value show on the page
IST210 10
HTML Form Element Review: Checkboxes• Checkboxes are used when you want the user to select one
or more options of a limited number of choices.
<html><form action="process_lottery3.php" method ="post" >
Pick a student (0-4)! <br><input type="checkbox" name="studentID" value="0"> 0
<br><input type="checkbox" name="studentID" value="1"> 1
<br><input type="checkbox" name="studentID" value="2"> 2
<br><input type="checkbox" name="studentID" value="3"> 3
<br><input type="checkbox" name="studentID" value="4"> 4
<br><input type="submit" value = "go"/>
</form></html>
IST210 11
HTML Form Element Review: Dropdown lists
• Dropdown lists let the user choose from a set of given options.
<html><form action="process_lottery3.php" method ="post" >
Pick a student (0-4)! <br><select name="studentID">
<option value="0"> 0 </option><option value="1"> 1 </option><option value="2"> 2 </option><option value="3"> 3 </option><option value="4"> 4 </option>
</select><input type="submit" value = "go"/>
</form></html>
Today’s Topic: Steps to Design PHP Pages to Answer User Queries
1. Query generation– What SQL query do we need to retrieve the
desired information?
2. HTML form design– What form element(s) are most suitable for user
input in this case?
3. Query processing and result display– How to query the database and display the results
using PHP?
Case Study
I want a website to show me the information of all projects which
are assigned to one or more specific employees
User input example:1 - Mary Jacobs 5 - Heather Jones
Step 1: Query Generation
• Write SQL query to show the projects which are assigned to employees 1-Mary Jacobs and 5-Heather Jones
Step 1: Query Generation
• Write SQL query to show the projects which are assigned to employees 1-Mary Jacobs and 5-Heather Jones
SELECT * FROM PROJECTWHERE ProjectID IN
(SELECT ProjectIDFROM ASSIGNMENTWHERE EmployeeNumber IN (1,5));
Step 2: HTML Form Design
• Is the following design appropriate?
I want a website to show me the information of all projects which
are assigned to one or more specific employees
Problems: 1. Users may not know which employees are in the database2. Users may not know what information is needed (employee
number, or employee name, or both?)
Step 2: HTML Form Design
• Solution: When possible, give users a list of options to choose from
• Is the following design appropriate?
I want a website to show me the information of all projects which
are assigned to one or more specific employees
Problem: Selection of more than one employee is not allowed.
Step 2: HTML Form Design
• Solution: Using checkboxes• Is the following design
appropriate?
I want a website to show me the information of all projects which
are assigned to one or more specific employees
IST210 20
Step 2: Code Specificationcase4.php
Retrieve the IDs and names of all employees from database
Use the “while loop” to generate a checkbox for each employee
Name of the array which stores the user’s choices
Value that will be passed to the process page
Value shown on the webpage
Step 3: Query Processing process_case4.php
This is the SQL Query we wrote in Step 1.
Employee numbers are obtained from user input
IST210 22
Case 4. Try it yourself
• Download the case4.php and process_case4.php from course website.
• Open case4.php and process_case4.php from NotePad++ and add your database information to both files
Input your own information
IST210 23
Case 4. Try it yourself (cont’d)
Visit the php page to query your database– http://my.up.ist.psu.edu/YourPSUID/case4.php
In-class Exercise: Case 5• Create PHP webpages to show the information of all employees
which are assigned to one or more specific projects– http://my.up.ist.psu.edu/zuz22/case5.php
Step 1: Query Generation
• Write SQL query to show the employees which are assigned to projects 1100-2010 Q3 Portfolio Analysis and 1200-2010 Q3 Tax Preparation
• Execute the query in SQL Management Studio to make sure you retrieve the desired result
IST210 26
Step 2: HTML Form Design
• Create case5.php in your webspace, copy from case4.php and modify it
Action to which PHP page?
IST210 27
Step 2: HTML Form Design (cont’d)
• Modify your case5.phpModify this query to retrieve all projects instead of employees
Modify these lines to display all the projects using checkboxes
IST210 28
Step 3: Query Processing
• Create process_case5.php, copy from process_case4.php and modify it
What ID should you use now?
Put the SQL Query you wrote in Step 1 here.
The IDs are obtained from user input.
Lab Exercise: Case 6 (Bonus Point)I want a website to show me the assignment information between all employees from one specific
department and one or more specific projects
User input example:Department:• Accounting Projects: • 1100 2010 Q3 Portfolio Analysis• 1200 2010 Q3 Tax Preparation
Corresponding output: