Matthew M.

Matthew M.

Web Application Development

Slide Duration:

Table of Contents

Section 1: Advanced PHP with MySQL
Course Introduction

13m 36s

Intro
0:00
Advanced PHP w/ MySQL
0:13
Course Introduction
0:14
Course Content
0:59
Web Application: Educator Store
1:45
Web Application: Educator Store
1:46
Object-Oriented Programming
6:09
Object-Oriented Programming Overview
6:10
MySQL
6:50
MySQL Overview
6:51
Example: Command Prompt & MySQL
8:34
What You Will Learn
9:34
What You Will Learn
9:35
Course Prerequisites
11:52
Course Prerequisites
11:53
Advanced Course Development Environment

18m 46s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Development Environment Setup
1:36
Firefox Web Browser, XAMPP, and PSPad Text Editor
1:37
Course Directory Structure
4:36
Course Directory Structure
4:37
phpDocumentor
7:23
phpDocumentor Overview
7:24
Parsing Source Code
7:44
docs Subdirectory
9:06
Asvanced PHP Course Documentation Example
10:21
Previous Educator PHP Students
14:14
Lib Directory Changes
14:38
Images Directory Changes
14:57
VERSION Constant
15:40
Comments Noting a Specific Version Number
17:04
Homework Challenge
17:30
Homework Challenge
17:31
Introduction to File I/O

35m 37s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
File I/O
1:34
File I/O Overview
1:35
Performing file I/O: 3 Steps
1:52
File Permissions
2:28
Read Permission & Write Permission
2:29
fopen()
4:47
fopen()
4:48
Two Required Parameters
5:01
Successful fopen(): File Handle and Resource
5:21
FALSE and E_WARNING Error
6:00
Example
6:39
File Paths
7:10
File Paths
7:11
File Access Modes
9:18
File Access Modes
9:19
Coding Example: fopen()
10:31
Using Relative and Absolute Path & Non-Existent File
10:32
File Pointers
15:55
File Pointers
15:56
Example File
16:11
Opening a File with fopen() Using 'r' as the Access Mode
16:22
fgets()
17:55
fgets() Overview
17:56
Coding Example: fgets() - Reading a Line at a Time
18:26
feof()
20:10
feof() Overview
20:09
Coding Example: feof()
20:50
fclose()
23:43
fclose() Overview
23:44
Coding Example: fclose()
25:02
Coding Example: Current Stock
26:10
Coding Example: Current Stock
26:11
trim ()
31:39
trim () Overview and Example
31:40
Homework Challenge
33:35
Homework Challenge
33:36
Web Application Development

36m 36s

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
Version 1.0 Changelog
0:31
catalog.php
0:32
Function Library: fileLIB.php
5:00
Version 1.1 Changelog
27:12
createItemDataArray() and createDeptDataArray()
27:13
outputSimpleItemLink() and outputSimpleDeptLink()
32:06
HTTP & the POST Method

34m 36s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
HTTP Model
1:28
HTTP Model
1:29
Client-Server Model 2 Steps Process
2:00
HTTP Messages
2:23
HTTP Messages
2:24
HTTP Requests
3:09
HTTP Requests
3:10
Example: HTTP Request Header
3:17
Coding Example: HTTP Requests
4:29
HTTP Responses
7:15
HTTP Responses
7:16
Example: HTTP Response (Header & Body)
8:00
header()
11:47
header() Overview
11:48
Coding Example: header
14:02
Coding Example: header() Error
14:52
GET Method
18:55
GET Method
18:56
Coding Example: GET Method
20:13
POST Method
21:09
POST Method
21:10
Coding Example: Sample Form Using the POST Method
23:50
Accessing POST Data in PHP
26:38
Accessing POST Data in PHP
26:39
Coding Example: Accessing POST Data via $_POST
28:15
GET vs. POST
29:54
GET vs. POST
29:55
Example: Accessing POST Data via $_POST
31:20
Example: Accessing POST Data via $_POST
31:21
Homework Challenge
33:00
Homework Challenge
33:01
Web Application Development

14m 11s

Intro
0:00
Version 2.0 Changelog
0:09
Updating the Site's Current Form to Use the POST Method
0:10
Creating Admin Website
2:55
Dynamically Generated Department List
12:40
Writing to Files

17m 38s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Review of File I/O
0:40
Review of File I/O
0:41
fwrite()
1:38
fwrite()
1:39
fputs()
2:20
'r+'
2:31
Coding Example: fwrite()
2:59
fopen() Access Modes
8:41
'a' and 'a+'
8:42
'w' and 'w+'
11:34
Homework Challenge
14:47
Homework Challenge
14:48
Web Application Development

28m 14s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
Updated Open File Functions
0:19
openItemsDataFile ( ), openDeptsDataFile ( ), and openLastAddedFile ( )
0:20
insertItem()
6:25
insertItem() Overview
6:26
Functions: createItemDataString ( ) and updateLastItemAdded ( )
7:07
addItemToDepartment ()
16:03
addItemToDepartment () Overview
16:04
Functions: createDeptDataString ( ) and updateDepartment ( )
17:55
HTTP POST: File Uploads

22m 51s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
POST Data Encoding
1:13
POST Data Encoding
1:14
When Data is Included in the Body of the HTTP POST Request and is of the Content Type
1:31
When Uploading Files Using HTTP POST
3:17
Uploading Files
6:22
Uploading Files
6:23
If Encoding Type is Not Set to Multipart/Formdata
9:27
$_FILES Superglobal
10:59
$_FILES Superglobal
11:00
Structure of $_FILES
12:15
Structure of $_FILES: Name, Type, tmp_name, Error, and Size
12:16
Coding Example: $_FILES Superglobal
13:34
Moving an Uploaded File
15:39
Introduction to Moving an Uploaded File
15:40
move_uploaded_file ( ): Definition and Example
16:40
Homework Challenge
21:19
Homework Challenge
21:20
Web Application Development

15m 30s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Uploading Item Image File
1:22
Uploading Item Image File
1:23
Uploading Item Image File (cont.)
2:43
Altering insertItem ( )
2:44
Helpfer Functions: getFileExtension ( ) and moveUploadedFile ( )
4:30
isValidItem ( )
13:03
Introduction to Object-Oriented Programming

32m 44s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Object-Oriented Programming
0:56
Introduction to Object-Oriented Programming
0:57
Associative Arrays
5:27
Associative Arrays
5:28
Classes
7:27
Classes Overview
7:28
Defining Classes
8:24
Defining Classes
8:25
Declaring Class Properties
9:25
Coding Example: Classes
10:11
Objects
12:18
Objects Overview
12:19
Classes vs. Objects
12:49
Classes vs. Objects
12:50
Instantiating Classes
14:58
Instantiating Classes
14:59
Coding Example: Instantiate an Item Object
16:30
Object Properties
19:21
Access and Set an Object's Property
19:22
Coding Example: Set & Access the Properties of an Item Object
24:23
Homework Challenge
30:22
Homework Challenge
30:23
Web Application Development

17m 47s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Version 5.0 Overview
0:50
Version 5.0 Overview and Examples
0:51
Outputting Object Properties
12:38
Outputting Object Properties
12:39
Array Object Properties
14:18
Access and Set Array Value
14:19
Object Methods

39m 57s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Object Methods
0:52
Definition of Object Methods
0:53
Calling Object Methods
3:25
Calling Object Methods
3:26
Coding Example: Simple Object Methods
4:44
Object Methods and Return Values
7:02
$this Variable
10:06
$this Variable: Definition and Example
10:07
$this Variable (cont.)
15:51
$this Variable (cont.)
15:52
Getters & Setters
21:21
Getters & Setters Methods
21:22
Object Methods In Strings
25:46
Object Methods In Strings
25:47
Coding Example: Outputting Method Return Values in Strings
27:41
Using $this to Call Other Methods
28:49
Using $this to Call Other Methods
28:50
Homework Challenge
34:18
Homework Challenge: 1-3
34:19
Homework Challenge (cont.)
36:20
Homework Challenge: 4-6
36:21
Homework Challenge (cont.)
37:52
Homework Challenge: 7-10
37:53
Web Application Development

17m 30s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Version 6.0 Overview
0:40
Version 6.0 Changes & Examples
0:41
Item Methods
0:53
Item Class Definition: getImageFilename()
0:54
Coding Example: getImageFilename()
1:58
Department Methods
7:33
addItem(), removeItem(), and isItemInDept() Method
7:34
addItemtToDepartment() & buildDeptObject() Functions
11:46
A Default Value Needed to Be Set for $items
16:26
Object Constructors

22m 20s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Object Constructors
0:32
Introduction to Object Constructors
0:33
Coding Example: Object Constructors
1:43
Defining Constructors
3:26
Defining Constructors
3:27
Coding Example: Constructors with No Arguments
4:24
Constructor Arguments
8:09
Constructor Arguments
8:10
Coding Example: Constructor Arguments
9:49
Important Notes
16:13
Important Notes
16:14
Homework Challenge
17:35
Homework Challenge: 1 - 4
17:36
Homework Challenge (cont.)
19:13
Homework Challenge: 5 - 9
19:14
Homework Challenge (cont.)
21:40
Homework Challenge: 10 and 11
21:41
Web Application Development

16m 19s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Version 7.0 Overview
0:39
Version 7.0 Overview
0:40
Item Constructor
2:19
Item Constructor
2:20
Department Constructor
7:47
Department Constructor
7:48
Customer Constructor
12:23
Customer Constructor
12:24
More Magic Methods

53m 37s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
Magic Methods
1:12
Magic Methods
1:13
Destructors
2:45
Destructors Overview
2:46
Coding Example: Calling Destructors
4:30
Coding Example: Object Destructor
9:19
_to String ()
16:12
_to String () Overview
16:13
Coding Example: _to String () Magic Method
18:10
Access Modifiers
21:23
Introduction to Access Modifiers
21:24
Access Modifiers: Public
21:39
Access Modifiers: Private
22:18
Access Modifiers: Protected
22:41
Object Properties and Methods
23:06
Coding Example: Public Access Modifiers
26:48
Coding Example: Private Access Modifiers
28:30
_get()
31:37
_get() Overview
31:38
Coding Example: _get () Magic Method
33:30
_set ()
36:23
_set () & the Magic Method
36:24
Using Getters & Setters
44:37
Coding Example: Using Getters & Setters
44:38
Homework Challenge
50:33
Homework Challenge: 1 - 6
50:34
Homework Challenge (cont.)
51:41
Homework Challenge: 7 - 12
51:42
Web Application Development

31m 12s

Intro
0:00
Version 8.0 Review
0:12
Version 8.0 Review
0:13
private Object Properties
1:15
private Object Properties
1:16
Coding Example
2:54
_toString() Methods
6:51
_toString() Methods
6:52
Coding Example
8:09
DataFile Class
13:27
DataFile Class & I/O Operations
13:28
Using DataFile Class: Instantiate a DataFile, DataFile open () Method, and DataFile close () Method
18:09
Homework Challenge
29:35
Homework Challenge
29:36
Classes vs. Objects

37m 49s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Class vs. Object Review
0:58
Class vs. Object Review
0:59
Static Properties
2:42
Static Properties
2:43
Scope Resolution Operator (::)
5:26
Scope Resolution Operator (::) & Static Property
5:27
Coding Example: Accessing a Static Property Using the Scope Resolution Operator
7:57
Coding Example: Accessing a Static Property in a Class Definition
10:33
Coding Example: Using a Static Property as an Instance Counter
14:18
Static Methods
18:51
Static Methods Overview
18:52
Coding Example: Static Methods
21:39
Classes vs. Objects
26:28
Classes vs. Objects: Diagrams
26:29
Class Constants
30:24
Class Constants Definition
30:25
Coding Example: Using Class Constants
31:55
Homework Challenge
34:01
Homework Challenge: 1 - 5
34:02
Homework Challenge (cont.)
35:25
Homework Challenge: 6 - 10
35:26
Web Application Development

21m 7s

Intro
0:00
Version 9.0 Overview
0:12
Version 9.0 Changes & Examples
0:13
Output Class
1:08
Output Class & Static Methods
1:09
outputHtmlSelector ( ) Method
2:43
outputItemSelector ( ) Method
4:53
outputDeptSelector ( ) Method
6:42
buildObject() Methods
11:54
buildObject() Methods & Examples
11:55
Exceptions

22m 43s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
try Blocks
0:44
try Blocks Definition
0:45
catch Blocks
2:03
catch Blocks: Definition and Syntax
2:04
Coding Example: try/catch Blocks
3:48
When an Exception Object is Caught & Error Handling
5:59
Exception Class
7:02
Exception Class
7:03
Coding Example: Using try/catch to Catch an Exception Thrown from a Method
8:04
Re-Throwing Exceptions
16:39
Re-Throwing Exceptions
16:40
Coding Example: Re-throwing an Exception
17:21
Homework Challenge
20:40
Homework Challenge: 1 - 5
20:41
Homework Challenge (cont.)
22:17
Homework Challenge: 6
22:18
Web Application Development

22m

Intro
0:00
Version 10.0 Overview
0:11
Updating addItem.php, addItemToDept.php, and error.php
0:12
Updating DataFile Class: open ( ) Method & try/catch blocks
7:45
Version 10.1 Overview
13:37
Version 10.1 Changes & Examples
13:38
Updating DataFile Class: close ( ) Method & logWarning ( )
20:17
Cookies

39m 47s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
What is a Cookie?
1:15
Definition of Cookie
1:16
HTTP - A Stateless Protocol
2:17
HTTP - A Stateless Protocol
2:18
Purpose of Cookies
4:10
Set - Cookie Header
6:21
Introduction to Set - Cookie Header
6:22
Coding Example: Set - Cookie Header
7:38
Cookie Header
9:45
Introduction to Cookie Header
9:46
Example: Cookie Header
10:27
setcookie()
12:33
Introduction to setcookie()
12:34
Example: Using setcookie
13:54
Cookies Attributes
15:48
Cookies Attributes Overview
15:49
Common Cookies Attributes: Domain
16:24
Common Cookies Attributes: Path
17:04
Common Cookies Attributes: Expires
19:34
Coding Example: Setting Cookie Attributes
20:58
$_COOKIE Superglobal
27:03
$_COOKIE Superglobal
27:04
Coding Example: Accessing Cookies from PHP Using $_COOKIE
29:45
Security Implications
34:44
Security Implications
34:45
Homework Challenge
36:10
Homework Challenge: 1 - 4
36:11
Homework Challenge (cont.)
37:47
Homework Challenge: 5 - 7
37:48
Web Application Development

39m 11s

Intro
0:00
Lesson Overview
0:17
Lesson Overview
0:18
instanceof Operator
1:34
instanceof Operator
1:35
Objects with Object Properties
2:53
Objects with Object Properties
2:54
Version 11.0 Overview
6:41
Version 11.0 Changes: Cart and CartItem Classes
6:42
Version 11.0 Coding Example
10:40
Version 11.1 Overview
31:03
Version 11.1 Changes & Examples
31:04
Introduction to Sessions

46m 8s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
What is a Session?
0:53
What is a Session?
0:54
Client-Side Sessions
3:51
Client-Side Sessions
3:52
Server-Side Sessions
5:04
Server-Side Sessions
5:05
Session IDs
6:26
Session IDs
6:27
The SID is Used by the Server to:
7:08
A Client Passes an SID to the Server with Each HTTP Request Via:
8:15
Sessions in PHP
12:19
Sessions in PHP
12:20
session_start()
14:40
session_start() Overview
14:41
Coding Example: Using session_start () to Continue a Session
18:03
$_SESSION Superglobal
22:06
$_SESSION Superglobal Overview
22:07
Coding Example: Setting a Session Variable via $_SESSION
25:22
Accessing Session Data
28:08
Accessing Session Data
28:09
Deleting Session Data
31:43
Deleting Session Data
31:44
Coding Example: Deleting Session Data
32:16
Configuring PHP Sessions
36:14
session.cookie_lifetime, session.cookie_domain, and session.cookie_path
36:15
Coding Example: Configuring PHP Sessions
37:28
Configuring PHP Sessions (cont.)
40:56
session.use_cookies, session.use_trans_sid, and session.use_only_cookies
40:57
Coding Example: Configuring PHP Sessions
42:25
Homework Challenge
42:55
Homework Challenge: 1 - 5
42:56
Homework Challenge (cont.)
44:10
Homework Challenge: 6 - 10
44:11
Homework Challenge (cont.)
45:27
Homework Challenge: 11 - 13
45:28
Web Application Development

11m

Intro
0:00
Version 12.0 Overview
0:12
Version 12.0 Changes Part I: Updating 'viewCart.php' & 'checkout.php'
0:13
Version 12.0 Changes Part II
5:03
Destroying Sessions

29m 59s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Destroying Sessions
1:02
Destroying Sessions
1:03
session_destroy()
2:10
session_destroy() Overview
2:11
Coding Example: Setting a Session Variable and Destroying a Session
3:18
Deleting Session Cookies
8:38
Deleting Session Cookies
8:39
Coding example: Deleting Session Cookies
9:17
Review of Steps
21:07
Review of Steps
21:08
Garbage Collection
21:50
Garbage Collection Overview
21:51
Coding Example: Garbage Collection
24:30
Homework Challenge
26:28
Homework Challenge: 1 - 4
26:29
Homework Challenge (cont.)
28:16
Homework Challenge: 5 - 9
28:17
Web Application Development

19m 14s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
_autoload()
0:46
Introduction to _autoload ()
0:47
Version 13.0 Overview
4:06
_autoload () and SessionManager Class
4:07
Updating 'viewCart.php' & 'checkout.php'
11:16
Introduction to Databases

21m 24s

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
Flat Files
1:09
Flat Files: Definition and Example
1:10
Problems Associated with Using Flat Files as a Database
2:15
Relational Databases
3:29
Relational Databases
3:30
Relational Database Management System (RDBMS)
3:50
Tables
7:43
Tables
7:44
Columns
9:24
Columns
9:25
What is SQL?
10:45
Introduction to Structured Query Language
10:46
Standard Data Types of SQL
12:23
Primary Keys
13:19
Primary Keys
13:20
Primary Key Examples
16:36
Primary Key Examples
16:37
Introduction to MySQL

28m 11s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
What is MySQL?
1:33
MySQL
1:34
MySQL Monitor
5:16
MySQL Monitor Overview
5:17
XAMPP & MySQL
5:58
In the MySQL Command: hostname, username and -p
7:05
Connecting to a MySQl Server
9:52
Connecting to a MySQl Server
9:53
Using MySQl Monitor
13:48
Using MySQl Monitor
13:49
GRANT Command
15:10
GRANT SQL Command
15:11
Privileges & Objects
18:18
Username, Hostname, and Password
19:37
Specifying Objects
20:05
Creating a PHP User Account
21:41
Creating a PHP User Account Overview
21:42
Meaning of all & *.*
23:35
Example: Creating a PHP User Account
23:48
Required Homework
26:27
Required Homework: 1 - 5
26:28
Required Homework (cont.)
27:28
Required Homework: 6
27:29
Creating Databases & Tables

23m 1s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
Creating a Database
1:40
Introduction to Creating a Database
1:41
Example: Creating a Database
3:33
CREATE TABLE Command
6:43
CREATE TABLE Command
6:44
Data Types
7:39
Numeric Data Types: INT, INT UNSIGNED, and DECIMAL
7:40
String Data Types: CHAR (M), VARCHAR (M), and TEXT
9:23
Colum Attributes
11:00
PRIMARY KEY Attribute
11:01
AUTO INCREMENT Attribute
11:35
Items Table
13:07
Items Table
13:08
Useful Commands
17:04
SHOW TABLES Command & DESCRIBE Utility Statement
17:05
Example: Creating an Items Table
17:58
Required Homework
20:51
Required Homework: 1 - 6
20:52
Required Homework (cont.)
21:55
Required Homework: 7 - 9
21:56
SQL Command: INSERT

27m 11s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
INSERT Command
1:20
SQL INSERT Command
1:21
Specifying Values
3:16
Columns with Numeric Data Types
3:17
Columns with String Data Types
3:34
Columns with AUTO INCREMENT
4:07
Inserting Items
5:21
Inserting Items
5:22
Example: Inserting Items
7:03
SQL Text Files
14:04
SQL Monitor Client
14:05
MySQL Monitor & the < Operator
15:15
Example
17:35
Required Homework
22:32
Required Homework: 1 - 6
22:33
Required Homework (cont.)
24:19
Required Homework: 7 - 10
24:20
SQL Command: SELECT

24m 57s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
SELECT Command
0:42
SELECT Command: Definition and Syntax
0:43
Results of a SELECT Query
1:53
To Specify the Retrieval of All Columns from a Table
3:06
Example: SELECT Command
4:18
WHERE Clause
7:11
WHERE Clause
7:12
A SELECT Query with WHERE Clause has the Following Syntax
8:10
A Where Condition can Contain both Logical and Comparison Operators
9:44
Literal Values
13:24
Literal Values
13:25
Example: Literal Values
14:18
ORDER BY Clause
15:31
ORDER BY Clause & SELECT Query
15:32
Ascending and Descending Order
17:30
An ORDER BY Clause can Specify Multiple Columns to Order the Rows by
18:01
Example: SELECT Query with WHERE and ORDER BY Clause
20:32
Homework Challenge
21:59
Homework Challenge
22:00
Homework Challenge (cont.)
23:54
Homework Challenge
23:55
Using PHP from MySQL

32m 43s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
PHP/MySQL Architecture
0:56
PHP/MySQL Architecture
0:57
MySQLi Extension
3:05
MySQLi Extension
3:06
Steps to Using MySQL from PHP
5:53
Four Steps to Using MySQL from PHP
5:54
Step # 3
7:18
Connecting to a Database
8:12
To Connect to a MySQL Database
8:13
To Test for Connection Errors
10:20
Running an SQL Statement
11:54
Running an SQL Statement
11:55
Example
13:30
Processing the Results
15:58
For non-SELECT Queries
15:59
MySQLi Object Property: affected_rows
16:19
For INSERT Statements on Tables with an AUTO_INCREMENT Column
18:07
Closing the Connection
19:45
Closing the Connection
19:46
Coding Example
21:24
Coding Example: Using MySQL from PHP
21:25
Homework Challenge
29:00
Homework Challenge: 1 - 4
29:01
Homework Challenge (cont.)
31:10
Homework Challenge: 5 - 9
31:11
Web Application Development

30m 30s

Intro
0:00
Lesson Overview
0:14
Lesson Overview
0:15
sprintf()
1:28
sprintf() Overview
1:29
Example
1:56
INSERT Statements with sprintf()
5:15
INSERT Statements with sprintf()
5:16
Version 14.0 Overview
10:00
Version 14.0 Changes & Examples Part 1
10:01
Version 14.0 Changes & Examples Part 2
21:58
SELECT QUERIES from PHP

24m 22s

Intro
0:00
Lesson Overview
0:14
Lesson Overview
0:15
SELECT Queries
1:21
SELECT Queries
1:22
MySQLi_Result Class
3:17
MySQLi_Result Class: num_rows
3:18
MySQLi_Result Class: fetch_assoc ( ) and fetch_object ( )
3:59
fetch_assoc()
5:17
fetch_assoc() Overview
5:18
Coding Example: Using fetch_assoc()
9:00
stdClass Objects
12:46
stdClass Objects
12:47
fetch_object()
14:19
fetch_object() Overview
14:20
Coding Example: Using fetch_object()
16:45
Freeing Result Set Memory
18:42
Freeing Result Set Memory
18:43
Coding Example: Using free ( )
20:01
Homework Challenge
22:07
Homework Challenge: 1 - 5
22:08
Web Application Development

17m 6s

Intro
0:00
Version 15.0 Overview
0:13
Version 15.0 Changes & Examples Part 1
0:14
Version 15.0 Changes & Examples Part 2
8:43
Linking Tables

24m 32s

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
A Departments Table
1:08
Departments Table
1:09
How Could We Model This in a Table: Option 1
1:26
How Could We Model This in a Table: Option 2
3:12
Database Normalization
4:37
Database Normalization
4:38
Foreign Keys
8:47
Foreign Keys
8:48
Linking Table
11:26
Linking Table
11:27
Multiple Column Primary Keys
15:30
Multiple Column Primary Keys
15:31
Example
18:51
Required Homework
22:34
Required Homework: 1 - 3
22:35
Required Homework (cont.)
24:10
Required Homework: 4
24:11
Web Application Development

24m

Intro
0:00
Version 16.0 Overview
0:11
Version 16.0 Changes
0:12
Version 16.0 Coding Examples
4:12
Version 16.0 (cont.)
18:30
Version 16.0 Changes & Examples Part 2
18:31
SQL Command: DELETE

10m 33s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
DELETE Statement
0:30
DELETE Statement & Its WHERE Clause
0:31
Delete All Rows From a Table
2:57
Using DELETE from PHP
4:04
Using DELETE from PHP Overview
4:05
Coding Example: Using DELETE from PHP
6:37
Homework Challenge
8:53
Homework Challenge: 1 - 4
8:54
Web Application Development

16m 2s

Intro
0:00
Version 17.0 Overview
0:11
Version 17.0 Changes
0:12
Version 17.0 Coding Example
2:51
Transactions
12:50
Database Transaction
12:51
Steps in Using Transactions
14:00
SQL Command: UPDATE

32m 14s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
UPDATE Statement
0:54
UPDATE Statement & Its WHERE Clause
0:55
Example: UPDATE Statement
3:32
Using UPDATE from PHP
5:21
Using UPDATE from PHP Overview
5:22
Coding Example: Using UPDATE from PHP
6:53
htmlspecialchars()
9:04
htmlspecialchars()
9:05
Encoding Special Characters
9:23
Coding Example: htmlspecialchars()
13:41
addslashes()
20:40
addslashes()
20:41
Coding Example: addslashes()
22:52
Homework Challenge
27:55
Homework Challenge: 1 - 2
27:56
Homework Challenge (cont.)
30:14
Homework Challenge: 3 - 5
30:15
Homework Challenge (cont.)
30:41
Homework Challenge: 6 - 9
30:42
Web Application Development

12m 33s

Intro
0:00
Version 18.0 Overview
0:12
Version 18.0 Changes
0:13
Version 18.0 Coding Example
1:24
SQL: Joins

42m 16s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
DATETIME Data Type
1:52
DATETIME Data Type
1:53
Modeling Orders
5:12
Modeling Orders
5:13
Customers Table
10:46
Customers Table
10:47
Example
16:18
Example: Order Table in MySQL
16:19
Joins
22:26
Joins Overview
22:27
Inner Join
23:09
Example: Joins
24:11
Join Conditions
28:14
Join Conditions
28:15
Example
28:32
Join Queries
30:00
Example: Join Conditions in MySQL
30:36
Implicit Joins
34:42
Implicit Joins
34:43
Example: Implicit Joins
35:57
Aliases
37:28
Introduction to Aliases
37:29
Example: Aliases
38:55
Required Homework
40:32
Problem 1
40:33
Problem 2
41:01
Problem 3
41:17
Web Application Development

29m 34s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Inserting Orders
0:44
Inserting Orders
0:45
Version 19.0 Overview
3:45
Version 19.0 Changes & Example Part 1
3:46
Version 19.0 Changes & Example Part 2
13:18
Version 19.1 Overview
21:10
Version 19.1 Changes
21:11
Version 19.1 Coding Example
22:18
User Authentication

26m 13s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
User Authentication
1:31
User Authentication
1:32
Authentication with Sessions
2:34
Authentication with Sessions
2:35
Four Steps in Authentication via Sessions
2:50
Using Sessions to Restrict Access
3:58
Using Sessions to Restrict Access
3:59
Coding Example: Restricted Access Area
4:47
Authentication Methods
5:54
Authentication Methods Overview
5:55
Coding Example: Authentication Methods
7:31
Logging Out
9:57
Logging Out
9:58
Coding Example: Log Out
10:47
Users Table
13:50
Users Table
13:51
Example: Creating a Users Table
15:08
Password Hashing
17:30
Password Hashing
17:31
PHP and MySQL Built-in Hash Functions: sha1 ( ) and md5 ( )
18:43
Coding Example: Password Hashing
19:27
Required Homework
24:41
Required Homework: 1 - 4
24:42
Web Application Development

14m 36s

Intro
0:00
Version 20.0 Overview
0:13
Version 20.0 Changes & Examples Part 1
0:14
Version 20.0 Changes & Examples Part 2
5:05
Version 20.0 Changes & Examples Part 3
7:29
Version 20.0 (cont.)
8:31
Version 20.0 Changes & Examples Part 4
8:32
Loading...
This is a quick preview of the lesson. For full access, please Log In or Sign up.
For more information, please see full course syllabus of Advanced PHP
Bookmark & Share Embed

Share this knowledge with your friends!

Copy & Paste this embed code into your website’s HTML

Please ensure that your website editor is in text mode when you paste the code.
(In Wordpress, the mode button is on the top right corner.)
  ×
  • - Allow users to view the embedded video in full-size.
  • Discussion

  • Study Guides

  • Download Lecture Slides

  • Table of Contents

  • Transcription

  • Related Services

Lecture Comments (2)

1 answer

Last reply by: Russell Burnham
Sun Jan 12, 2014 3:31 AM

Post by David Zhang on May 13, 2012

Hi Matthew,

I am including newline in my code but when the string is written into the file it's not creating a newline for the new item or string. I have also ran into the same problem in lecture 6's homework challenge.

I tested your files and they work but mine don't please help.

Thank you.

Web Application Development

Web Application Development

Lecture Slides are screen-captured images of important points in the lecture. Students can download and print out these lecture slide images to do practice problems as well as take notes while watching the lecture.

  • Intro 0:00
  • Lesson Overview 0:08
    • Lesson Overview
  • Updated Open File Functions 0:19
    • openItemsDataFile ( ), openDeptsDataFile ( ), and openLastAddedFile ( )
  • insertItem() 6:25
    • insertItem() Overview
    • Functions: createItemDataString ( ) and updateLastItemAdded ( )
  • addItemToDepartment () 16:03
    • addItemToDepartment () Overview
    • Functions: createDeptDataString ( ) and updateDepartment ( )

Transcription: Web Application Development

Hello again, and welcome back to Educator.com's Advanced PHP with MySQL course.0000

In today's lesson, we are going to be continuing development of our web application.0005

Today, we are going to be starting with a new version of the web application, version 3.0.0010

And we are going to be incorporating what we learned in our last lesson about how to write to files.0014

And what we are going to be doing is: in our last web application (if we look at the last version of it),0022

we had created an admin site where we could add an item to the store and add an item to a department.0031

And what we did was set up forms that didn't really perform the function; they were just basic forms that were a template.0037

And in this lesson, what we are going to do is actually implement the functionality,0046

which is going to involve writing to files (for example, our items.txt file and our departments.txt file).0050

If we look at (for example) our old version, version 2.0 of the admin site, we had created this addItem form0056

where we could add an item to the store, and select the image file extension, provide a description, a price, a name, and so forth.0063

And then, when we click on Add Item, it is not actually adding it to the store.0083

But it is saying that it would have created a new item in the store with item number 1007.0086

And then, it just outputs the information that would have been stored for that item.0094

Now, one thing to note is that, if you remember from version 2.0, we have a getLastItemAdded function.0099

And what that function is: it reads our file we added in the last web application lesson, called lastAdded.txt.0109

And lastAdded.txt just contains simply the item ID of the last item added to the store.0117

So, when we add a new item to the store, we read from this file; we increment it by 1, set that as the ID of the new item,0124

and then we go ahead and update the file; and we are going to0131

update the lastAdded.txt file--that is what we are going to be doing in this lesson.0134

This item 1007 is generated by that getLastItemAdded function.0139

We also had an admin page called addItemToDept, where we could add, for example, item 1001 to department 3.0144

And it wasn't actually implementing the functionality; it was just saying, "Item 1001 would have been added to department 3."0155

What we are going to do in this lesson is: we are going to make this functional.0161

We are going to write to our departments.txt file, adding the item number to a particular department's line.0167

In this case, for example, if we go and look at departments.txt, for department 1, we would be adding an item number to it, 1001.0174

So now, 1001 would be part of the third department, which is the Sporting Goods department.0188

Because we are going to be writing to files, one of the things we are going to be doing in this lesson is updating0200

our three functions that are used to open our items data file, our departments data file, and our lastAdded data file.0206

The way it worked in the last web application: if we look at, for example, openDeptsDataFile,0215

it opens each file with this r access mode, which is a read-only access mode.0224

Because we are going to be (put that back down) writing to files, we need to have the option of opening the files in non-read-only form.0230

And if you notice, for openItemsDataFile, we had specified r as the access mode, as well.0240

And for openLastAdded file, we specified r, as well.0247

What we are going to do in our new version of the web application is modify these functions slightly,0251

so that they take an optional parameter that is going to allow us to specify another access mode, other than read.0257

Read will be the default access mode, but we can also specify, for example, append mode or overwrite mode.0264

So, if we look at these updated functions of, for example, openDeptsDataFile in version 3.0,0270

we can see that it takes an optional parameter now, called accessMode.0283

And the first thing we do is test: if accessMode hasn't been provided, if it has a default value of null,0287

then we are just going to open the file in read mode.0294

So, this is going to allow our current calls to openDeptsDataFile to still work,0296

because they are not going to be providing a file access attribute.0301

If one is provided (meaning accessMode is not null), we are going to open the file in that access mode.0308

For example, we can open it in append mode, which would be specifying the lowercase letter a.0313

And we have done that update for openItemsDataFile (you can see here) and openLastAdded file, as well.0318

The default mode, if you call the function without an access mode, is going to be to open the file in read mode.0332

If you provide an access mode, our application is going to open it in whatever access mode you specify.0337

On our addItem.php form (let's go back to...), this is what the form looked like.0349

And what it did in our last application was just: it was sort of a dummy form.0366

It would just output, as we just saw, "Item 1007 would have been added; these are the attributes."0369

Well, now we are going to make it functional and make it actually add an item to the database.0374

What we are going to be doing is creating a function called insertItem.0387

And what that is going to do is: it is going to be passed an associative array of all of the information that is provided0392

for a new item on the addItem.php form, and it is going to go ahead and add that item to the items.txt file.0399

If you remember, our items.txt file--each line is a delimited string that specifies all of the different data fields for a particular item.0408

So, insertItem is going to create a new line in this items.txt file for the new item added to the store.0418

And to do this, we are creating two additional helper functions.0430

One is called createItemDataString, and what that is going to do is take the associative array of information0434

about the new item and put it into the form of that delimited string that our items.txt file requires.0440

And so, this is a function that is going to take in the array of data and output the formatted string.0448

We are also going to have a new function called updateLastItemAdded, because,0453

when we add a new item to the store, we are going to be reading that lastAdded.txt file0458

to find out what the ID of the last item added to the store was.0463

We are going to be incrementing it for the new item.0466

So then, what we need to do is go ahead and update that last added file, so that, when we try to add another item to the store,0468

it is going to have an appropriate, properly incremented number.0474

This updateLastItemAdded function is going to be able to do that.0479

Let's go take a look at the code for version 3.0 for insertItem.0486

And what you can see is: we pass it an associative array of item information.0497

And if we go and look at the new version of addItem.php (that's the old version),0501

what we do in the data processing section at the beginning of the file: if the action of the form is to add item0511

if the information provided for a new item is valid, then we are going to be calling this insertItem function,0518

and we are going to be passing it this associative array newItem,0523

which, as you can see up here, is our POST variable; it is an array that contains all of the information submitted on the form:0528

the item's name, its price, its description, and its image file extension.0535

When we call insertItem, we pass it that associative array; and the first thing that insertItem is going to do0540

is call this getLastItem function, which we had learned about in our last lesson, which reads that lastAdded.txt file0547

to find out the ID of the last item added to the store.0555

We are going to increment it by 1, and we are going to say that that is the ID of the new item.0558

Then, what we are going to do is: we are going to add to this item associative array that was passed into insertItem.0563

We are going to add this new item ID to that, because when we submitted that form, the new item didn't have an ID yet.0570

So, we are going to add that to it.0577

Then, what we are going to do is open that item's data file for writing.0579

And we are going to open it in append mode, because what we are going to be doing0584

is just adding a new line to that file, at the end of the file, for this new item.0587

And as you can see here, we are making use of our new version of openItemsDataFile.0591

We are passing in an access mode: in this case, we are passing in the letter a, which is to open it in append mode.0597

Then, what we do is: before we write to the file, we need to create that delimited string of all of the item's information.0603

So, we are making use of this helper function I just mentioned, called createItemDataString.0609

And we pass it this associative array of all of the item's information,0615

which contains everything that was submitted on that POST form,0618

as well as this new item ID that we generated.0621

If we go look at createItemDataString, it does a little bit of checking at the beginning,0626

just to make sure that there are at least 5 items in this array that you are passing to it, because an item has 5 data fields.0631

And then, all it does is builds up this item data string, starting with the item ID, all the way through the image file extension.0639

And then, it returns the delimited string that it creates.0646

And then, after that, we add a new line to it, because every time we add a new item to the file,0652

we want to put it on a new line, so we end each line with a new line character.0659

And then, we go ahead and simply write that string--the new item's data string--with the appended new line character to the file,0663

and then go ahead and just close that items.txt data file.0671

Now, if it was successfully written (we test to see that it was successfully added to the items.txt file),0677

then what we need to do is go ahead and update our lastAdded.txt file,0684

because now, let's say, the new item in the store is item 1007; if another user tries to go and add a new item to the store,0690

they are going to get that the last item added was 1006; what we need to do is update it to 1007,0696

so when they add a new item to the store, it becomes 1008.0702

And that is where this helper function updateLastItemAdded comes in.0706

We call that function, specifying the ID of the new item.0710

So, we are going to add arrays to the old item ID from lastAdded.txt, and add the new item.0716

And then, we are just going to do a little checking to make sure it worked OK.0721

And then, if it worked out fine, we are going to return from this insertItem the ID generated for this new item.0725

If we go and take a look really quickly at updateLastItemAdded, what it does is:0732

we pass it the new item ID that we want set that lastAdded file to the value of.0737

And so, what we do is open the lastAdded file; in this case, we are passing it the access mode identifier w, which is overwrite mode,0743

which means we are going to open the file in write mode, and we are going to0752

erase all of the contents and put the file pointer at the beginning.0755

So, when we open that file, we are going to erase the last item ID, which, for our example we have been working with, is 1006.0758

Then, all we do is go ahead and write the new item ID to the file.0765

So now, that file contains the updated ID of the last item added to the store.0770

Perform the little error checking, or make sure that the file was closed OK.0775

And then, if it was successfully updated with the new item ID, we return true; and if not, we return false.0780

And so, that is how the insertItem function works.0787

So now, let's go and take a look at what it looks like in practice.0792

This is the new version, version 3.0, of our form.0795

And the form looks exactly the same, but it is what is going on behind the scenes that is going to happen; it is going to insert a new item.0800

Let's see, if we add another basketball to the store, and then let's say it's going to have a GIF image,0806

and we go ahead and add the item (click Add Item), it is going to say,0820

"The item was successfully added, and it has been assigned item 1007."0825

What it did was read that lastAdded.txt file, saw that the last item added to the store was 1006,0828

set the new item ID to 1007, and updated that file.0835

So, if we go and look at our data files, PSPAD is going to say, "Hey, these files that you already had open have been changed,0839

so do you want me to refresh it?"--say yes.0848

If we go in items.txt, we can see that a new line has been added (1007).0851

And then, it has all the information that we provided: Basketball #2, $24.99.0856

Additionally, lastAdded.txt has been updated so that, instead of saying 1006, it now says 1007,0860

because this last item we added to the store was, in fact, 1007.0868

Now that this item has been added to the store, if we go back and look at version 3.0 of the store,0876

and if we click on viewCart, which shows all of the items that we currently have in the store,0881

we can see, at the very bottom here, that we have this new item: Basketball #2.0887

Now, you will see that the image is not present, and that is because we didn't upload an image for this file.0891

And we are actually going to get to that in our next web application development lesson.0895

But for right now, we'll just leave the placeholder for that image.0900

And if we click on Basketball #2, it works with the item.php page; it displays all of the information about the item, and so forth.0902

And so, that is how we implement the functionality of adding a new item to the store.0911

And you can see that you can do that as many times as needed.0915

Let's say we add some apparel; now it says that the item was added to the store; it now has item 1008.0919

Again, if we go back and look at our refreshed files, we can see that lastAdded.txt has been updated to 1008.0938

And items.txt has been added, with a new line representing that new item in the store.0945

And when we go to view our cart, we can see that that other item, 1008, has been added to the store, as well.0950

The other form we had created when we did our last version of the admin application was:0964

we created a form called addItemToDept.php, which as we saw earlier, is basically:0969

you enter the ID of an item you want to add to a particular department,0974

and then you enter the department ID of the department you want to add it to, and it will go ahead and add that.0978

On our last form, it was just sort of a mock form that didn't really have any behind-the-scenes action.0983

Well, now we are actually adding that functionality.0988

We are creating a function called addItemToDept, which is going to add that item to the department.0990

Now, what that means is that it is going to make an update to the departments.txt file.0996

And so, for example, as mentioned before, if we wanted to add item 1001 to department 3,1003

the way that would look in our departments.txt file would be to update this last data field,1010

which is a comma-delimited list of all of the items in the particular department.1016

And so, our addItemToDept function is going to do this.1022

And if we look at addItemToDept, in the processing section of the form at the beginning, we just had a placeholder here.1030

We tested that, when a person submits an item ID and a department ID, we just checked to make sure that they both existed.1039

And then, we would output a message saying, "OK, this item would have been added to the department."1046

Well, now we are going to fill in this placeholder.1051

In version 3, what we are going to do is: we are going to be calling this addItemToDept function.1053

And that is going to take two arguments: one is the item ID of the item we want to add to the department,1057

and one is the department ID of the department we are adding it to.1063

We checked to make sure that it was added OK, and then at the bottom,1066

we simply are outputting a message that says it was successfully added to the department.1070

In using this addItemToDept function, we are creating two additional helper functions.1076

One is createDeptDataString, which is just like what we had seen when we added a new item to the store, where we had createItemDataString.1082

We are going to have a function that is going to take an array of information about a particular department1090

and create that delimited string that follows the format in departments.txt.1095

And here, it is a delimited string with three different fields, where the third field1101

is a comma-separated list of all of the item ID's for the items in the department.1106

And so, that is the createDeptDataString function.1118

The other thing that we are going to do is create another helper function1121

that is going to go through the process of making that change to our departments.txt file,1125

where it is going to add, for example, 1001 to that comma-delimited string for department #3.1131

So, that is what the updateDepartment does.1138

And one thing to note is that this updateDepartment is going to make use of a file function, which is provided in PHP.1140

What file does is: you provide it the name of a file, for example, and what it does is reads every line in that file1149

and creates an indexed array that contains each line of that file.1168

For example, if we used file to read departments.txt, file would return an array that contains three elements.1174

Each element would be one line in the file, so the first element would be this string here; the second element would be this string here.1183

And what that is going to allow us to do is do some processing on that departments.txt file.1191

Let's take a look at our addItemToDept function.1199

What it is going to do is: when we specify the item ID and the department ID of the item that we are adding1205

and the department that we are adding it to, we are going to go ahead and load the information for the particular department.1214

And we are going to use the getDepartment function for that.1220

And the reason we are doing that is that we are going to test to see1223

if the item ID that the user has supplied--if that item is already in that department.1226

What we would do is extract the items array from the department that is part of this department associative array returned by getDepartment.1231

And that items array, again, is an indexed array of all the item ID's in the department.1242

We loop through it, and if the item ID we are trying to add to it already exists,1249

we are just going to return true, because the item is already in the department.1252

If the item is not already in the department, then we are going to add that item ID to the departments array of item ID's, which has this key items.1256

And then, what we are going to do is pass this associative array that contains all of the department's information--1269

it contains its ID, its name, and that indexed array listing all of the items that are in the department--1273

in this case, it is going to include the ID of the new item we are adding to it--1281

we are going to pass that to the updateDepartment function.1285

And then, if the update works, we are going to return true; and if not, we are going to return false.1288

The action of writing to the file is going to occur in this updateDepartment function.1297

And if we go and look at that, we can see that the first thing we do is use this file function that we talked about and click on it in the documentation.1301

It will take you to the PHP documentation that says that it reads the entire file's contents into an array, as we had mentioned.1311

And so, what we are going to do is create an array called deptLines,1322

which is just going to be an indexed array of all the lines in departments.txt.1325

And then, what we are going to do is search through this array that we have of all of the different departments1331

in our store, until we find the line that contains the department we are trying to add it to.1341

What we do is loop over this array, and then we use the explode function to separate1347

all of the information that is contained in each line of departments.txt.1356

We are going to separate on this departments data separator, which is the vertical bar,1361

and we are going to extract the first element of the array that that explode function is going to return,1366

which is going to be the ID of the department.1371

And then, what we are going to do is: if the department ID of the department we pass to this function that we are trying to update1374

equals the ID of the particular line that we are looping over in the file,1386

then we are going to set this variable currDeptIndex equal to that file and break out of the loop.1392

What that is doing is: we are searching through the departments.txt file1397

to find the line number that contains the information about the item we are looking for.1401

Then, what we are going to do is create a string that is an updated version of that department,1408

which is going to contain the new item ID of the item that has been added to the department.1414

And then, what we are going to do is go ahead and rewrite that whole departments file,1419

looping through all of the department lines that we read from it originally, as well as this updated line.1423

What we are saying here is: we are adding to the deptLines array, which contains all of the lines that we had read in from the departments.txt file.1430

And at the position where we found the department that we are looking for, we are going to add this department data string, followed by a new line.1439

And createDeptDataString works just like our createItemDataString.1449

What it does is creates that delimited line for a department, which contains the department ID, the name,1456

and then all of the items in the store, separated by vertical bars.1465

And then, it contains all of the items in the department in this third data field, separated by a comma.1468

And so, you can see here--the first thing it does is creates this blank department string.1477

We add the department ID to it, along with the vertical bar delimiter.1481

We add the name and the vertical bar delimiter, and then what we do is loop over that indexed array items1485

that is part of the department that contains all of those ID's, including the ID of the item we are trying to add to the department.1491

And then, we create that comma-delimited list, and then add that to this department string.1497

And then, we return the department string.1503

So, now that we have this new department string that has updated lists of items in it,1506

as mentioned, we are just going to open our departments data file.1513

And we are going to open it up in overwrite mode, which means we are going to erase all the contents of it.1517

And then, we are going to loop over all of the lines that were previously read from the departments.txt file,1522

as well as the new line that has the updated department string.1529

And then, we are just going to write them out to the file; do some error checking and make sure that the file has closed OK;1536

and just see that there were not any errors.1542

And so, it is kind of a little tedious (what we have to do), in that, in order to add this item to the file,1545

we have to read all of the items out, search for the line that the current department we want to alter is...1552

We have to change that, and then write all of those lines back.1559

And that is one way of doing it; and there are some more complicated ways, as well.1562

But as you can see, it is kind of a tedious process, and as we progress in the course,1565

when we change our back end for this system from these flat data files to our database, it is going to make that a lot easier.1569

We are not going to be having to do all this tedious work, because the database is going to do it for us.1577

If we go and look at the new version of the web application in action, if we go to addItemToDept...1584

For example, we just added 1008; and if we go look at the store--here is item 1008, men's pants.1594

They show up in the viewCart, but let's say we want to add them to the Apparel department.1603

Well, currently, when we click on the Apparel department, it doesn't list this new item.1608

So, what we are going to do is use our new implemented functionality for adding an item to a department1612

to go ahead and add that to our Apparel department, which is department number 1.1618

So, the pants item that we added was 1008; the department ID that we are adding it to (the Apparel department) is department 1.1623

When we click Add to Department, it is going to say it was successfully added to the department.1632

Now, if we go ahead and refresh our Apparel page, we can see that Pants now shows up in the department page.1635

Additionally, if we look over at departments.txt, it has been updated,1644

and you can see that this Apparel department line in our departments.txt file has had this 1008 item ID added to it.1649

And so, that is what happened when we ran that updated department function.1659

It went through and updated the line for this particular department.1664

And so, that is how we add a new department to the store.1668

So now, we have, in our admin website, a functionality implemented for addItem, as well as adding an item to a department.1670

And what we are going to do in our next web application development lesson is improve the addItem form,1680

so that we can actually upload an image, as well.1686

That ends today's lesson; thank you for watching Educator.com, and I look forward to seeing you next time.1689

Educator®

Please sign in to participate in this lecture discussion.

Resetting Your Password?
OR

Start Learning Now

Our free lessons will get you started (Adobe Flash® required).
Get immediate access to our entire library.

Membership Overview

  • Available 24/7. Unlimited Access to Our Entire Library.
  • Search and jump to exactly what you want to learn.
  • *Ask questions and get answers from the community and our teachers!
  • Practice questions with step-by-step solutions.
  • Download lecture slides for taking notes.
  • Track your course viewing progress.
  • Accessible anytime, anywhere with our Android and iOS apps.