29
PHP and SQL Server: Queries IST210 1

PHP and SQL Server: Queries IST2101. Project Report 4 SQL Queries Due Sunday, 4/5 at 11:59pm Instructions on how to access team webspace and SQL database

Embed Size (px)

Citation preview

IST210 1

PHP and SQL Server: Queries

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

What a cool website looks like

Text box

Checkboxes

Dropdown lists

Submit buttons

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>

Revisiting priceline.com

Text box

Checkboxes

Dropdown lists

Submit buttons

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: